Advertisement
Guest User

GunGame v1.3 - by DasNeo

a guest
Jan 18th, 2013
430
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 25.78 KB | None | 0 0
  1. // Dieses Script wurde von DasNeo geschrieben.
  2. #include <a_samp>
  3. #include <Dini>
  4. #include <ocmd>
  5.  
  6. #define DIALOG_REGIST1 1
  7. #define DIALOG_LOGIN 2
  8. #define DIALOG_NOPW 3
  9. #define DIALOG_NOPW2 4
  10. #define DIALOG_WRONGPW 5
  11.  
  12. #define COLOR_GRAY 0xBEBEBEFF
  13. #define COLOR_RED 0xFF0000FF
  14. #define COLOR_GREEN 0x00FF00FF
  15. #define COLOR_TURKIS 0x00FFE6FF
  16. #define COLOR_WHITE 0xFFFFFFFF
  17.  
  18. new Text:fuehrender;
  19. new PlayerText:nextFest[MAX_PLAYERS];
  20. new PlayerText:nextLvl[MAX_PLAYERS];
  21.  
  22. new Float:RandomSpawn[][3] =
  23. {
  24.     {1377.2893,2195.7578,9.7578},
  25.     {1372.7399,2195.3296,9.7578},
  26.     {1368.6169,2195.3647,9.7578},
  27.     {1364.6364,2195.8181,9.7578},
  28.     {1360.4471,2195.6870,9.7578},
  29.     {1394.9082,2177.4573,9.7578},
  30.     {1394.6724,2173.6697,9.7578},
  31.     {1394.4272,2169.1064,9.7578},
  32.     {1394.6779,2164.6282,9.7578},
  33.     {1394.4634,2160.0500,9.7578}
  34. };
  35.  
  36. main()
  37. {
  38.     print("\n----------------------------------");
  39.     print("--------GunGame by DasNeo-----------");
  40.     print("----------------------------------\n");
  41. }
  42.  
  43. public OnGameModeInit()
  44. {
  45.     SetGameModeText("GunGame");
  46.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  47.     SetTimer("hoechstesLevel", 30000, true);
  48.     fuehrender = TextDrawCreate(148.0,416.0,"");
  49.     TextDrawColor(fuehrender,0xBEBEBEFF);
  50.     return 1;
  51. }
  52.  
  53. public OnGameModeExit()
  54. {
  55.     return 1;
  56. }
  57.  
  58. public OnPlayerRequestClass(playerid, classid)
  59. {
  60.     SpawnPlayer(playerid);
  61.     SetPlayerCameraPos(playerid,123,123,123);
  62.     SetPlayerCameraLookAt(playerid, 123.1,123.1,123.1, 1);
  63.     return 1;
  64. }
  65.  
  66. public OnPlayerConnect(playerid)
  67. {
  68.     new path[128];
  69.     format(path, sizeof(path), "/accounts/%s.ini", spielerName(playerid));
  70.     new willkommen[128];
  71.     format(willkommen,sizeof(willkommen), "{FFA000}[#] {A0A0A0}%s ist dem Spiel beigetreten.",spielerName(playerid));
  72.     SendClientMessageToAll(COLOR_GRAY, willkommen);
  73.     if(!dini_Exists(path))
  74.     {
  75.         ShowPlayerDialog(playerid, DIALOG_REGIST1, DIALOG_STYLE_PASSWORD, "{FFBE00}Registrierung{FFFFFF} -GunGame-", "{FFFFFF}Wir heissen dich herzlichst\nauf unserem Server willkommen.\nBitte geben Sie hier Ihr gewuenschtes Passwort ein:", "Weiter", "Abbrechen");
  76.     }
  77.     else
  78.     {
  79.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFBE00}Login{FFFFFF} -GunGame-", "{FFFFFF}Geben Sie Ihr Passwort ein:", "Login", "Abbrechen");
  80.     }
  81.     if(GetPVarInt(playerid, "banned") == 1)
  82.     {
  83.         SendClientMessage(playerid, COLOR_RED, "Du wurdest von diesem Server gebannt!");
  84.         Kick(playerid);
  85.     }
  86.     //Festes Textdraw
  87.     nextFest[playerid] = CreatePlayerTextDraw(playerid,481.000000, 101.000000, "Naechstes Level");
  88.     PlayerTextDrawBackgroundColor(playerid,nextFest[playerid], 255);
  89.     PlayerTextDrawFont(playerid,nextFest[playerid], 3);
  90.     PlayerTextDrawLetterSize(playerid,nextFest[playerid], 0.470000, 1.100000);
  91.     PlayerTextDrawColor(playerid,nextFest[playerid], -1);
  92.     PlayerTextDrawSetOutline(playerid,nextFest[playerid], 0);
  93.     PlayerTextDrawSetProportional(playerid,nextFest[playerid], 1);
  94.     PlayerTextDrawSetShadow(playerid,nextFest[playerid], 1);
  95.    
  96.     //Level Textdraw   
  97.     nextLvl[playerid] = CreatePlayerTextDraw(playerid,481.000000, 116.000000, "test");
  98.     PlayerTextDrawBackgroundColor(playerid,nextLvl[playerid], 255);
  99.     PlayerTextDrawFont(playerid,nextLvl[playerid], 3);
  100.     PlayerTextDrawLetterSize(playerid,nextLvl[playerid], 0.470000, 1.700000);
  101.     PlayerTextDrawColor(playerid,nextLvl[playerid], 65535);
  102.     PlayerTextDrawSetOutline(playerid,nextLvl[playerid], 0);
  103.     PlayerTextDrawSetProportional(playerid,nextLvl[playerid], 1);
  104.     PlayerTextDrawSetShadow(playerid,nextLvl[playerid], 1);
  105.     return 1;
  106. }
  107.  
  108. forward spielerName(playerid);
  109. stock spielerName(playerid)
  110. {
  111.     new name[128];
  112.     GetPlayerName(playerid,name,sizeof(name));
  113.     return name;
  114. }
  115.  
  116. forward naechstesLevel(playerid);
  117. public naechstesLevel(playerid)
  118. {
  119.     spielerLaden(playerid);
  120.     new path[128];
  121.     format(path, sizeof(path), "/accounts/%s.ini", spielerName(playerid));
  122.     switch(GetPVarInt(playerid, "Level"))
  123.     {
  124.         case 0:
  125.         {
  126.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "Silenced 9mm");
  127.         }
  128.         case 1:
  129.         {
  130.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "Deagle");
  131.         }
  132.         case 2:
  133.         {
  134.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "Shotgun");
  135.         }
  136.         case 3:
  137.         {
  138.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "Combat Shotgun");
  139.         }
  140.         case 4:
  141.         {
  142.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "Sawnoff Shotgun");
  143.         }
  144.         case 5:
  145.         {
  146.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "UZI");
  147.         }
  148.         case 6:
  149.         {
  150.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "MP5");
  151.         }
  152.         case 7:
  153.         {
  154.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "TEC-9");
  155.         }
  156.         case 8:
  157.         {
  158.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "AK-47");
  159.         }
  160.         case 9:
  161.         {
  162.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "M4A1");
  163.         }
  164.         case 10:
  165.         {
  166.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "Molotov Cocktail");
  167.         }
  168.         case 11:
  169.         {
  170.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "Chainsaw");
  171.         }
  172.         case 12:
  173.         {
  174.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "Flamethrower");
  175.         }
  176.         case 13:
  177.         {
  178.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "Minigun");
  179.         }
  180.         case 14:
  181.         {
  182.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "RPG");
  183.         }
  184.         case 15:
  185.         {
  186.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "HS-Rocket");
  187.         }
  188.         case 16:
  189.         {
  190.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "Satchel Charge");
  191.         }
  192.         case 17:
  193.         {
  194.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "Spraycan");
  195.         }
  196.         case 18:
  197.         {
  198.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "Fire Extinguisher");
  199.         }
  200.         case 19:
  201.         {
  202.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "Knife");
  203.         }
  204.         case 20:
  205.         {
  206.             PlayerTextDrawSetString(playerid,nextLvl[playerid], "Grenade");
  207.         }
  208.     }
  209.     return 1;
  210. }
  211.  
  212. forward spielerLaden(playerid);
  213. public spielerLaden(playerid)
  214. {
  215.     new path[128];
  216.     format(path, sizeof(path), "/accounts/%s.ini", spielerName(playerid));
  217.     SetPVarInt(playerid, "Level", dini_Int(path, "Level"));
  218.     SetPVarInt(playerid, "Gewonnen", dini_Int(path, "Gewonnen"));
  219.     SetPVarInt(playerid, "Auswahl", dini_Int(path, "Auswahl"));
  220.     SetPVarInt(playerid, "banned", dini_Int(path, "banned"));
  221.     SetPVarInt(playerid, "admin", dini_Int(path, "admin"));
  222.     return 1;
  223. }
  224.  
  225. forward spielerSpeichern(playerid);
  226. public spielerSpeichern(playerid)
  227. {
  228.     new path[128];
  229.     format(path,sizeof(path), "/accounts/%s.ini", spielerName(playerid));
  230.     dini_IntSet(path, "Level", GetPVarInt(playerid,"Level"));
  231.     dini_IntSet(path, "Gewonnen", GetPVarInt(playerid, "Gewonnen"));
  232.     dini_IntSet(path, "Auswahl", GetPVarInt(playerid, "Auswahl"));
  233.     dini_IntSet(path, "banned", GetPVarInt(playerid, "banned"));
  234.     dini_IntSet(path, "admin", GetPVarInt(playerid, "admin"));
  235.     return 1;
  236. }
  237.  
  238. public OnPlayerDisconnect(playerid, reason)
  239. {
  240.     SetPVarInt(playerid, "Level", 0);
  241.     spielerSpeichern(playerid);
  242.     return 1;
  243. }
  244.  
  245. public OnPlayerSpawn(playerid)
  246. {
  247.     naechstesLevel(playerid);
  248.     TextDrawShowForPlayer(playerid, fuehrender);
  249.     PlayerTextDrawShow(playerid, nextFest[playerid]);
  250.     PlayerTextDrawShow(playerid, nextLvl[playerid]);
  251.     TogglePlayerControllable(playerid, 1);
  252.     spielerLaden(playerid);
  253.     SetPlayerPos(playerid, 1377.2893,2195.7578,9.7578);
  254.     levelUp(playerid);
  255.     spielerSpeichern(playerid);
  256.     new rand = random(sizeof(RandomSpawn));
  257.     SetPlayerPos(playerid, RandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]);
  258.     return 1;
  259. }
  260.  
  261. forward RoundStart();
  262. public RoundStart()
  263. {
  264.     new path[128];
  265.     for(new i=0; i < MAX_PLAYERS; i++)
  266.     {
  267.         format(path,sizeof(path), "/accounts/%.ini", spielerName(i));
  268.         dini_IntSet(path,"Level",0);
  269.         SetPVarInt(i, "Level",0);
  270.         spielerSpeichern(i);
  271.         SpawnPlayer(i);
  272.     }  
  273.     return 1;
  274. }
  275.  
  276. forward levelUp(playerid);
  277. public levelUp(playerid)
  278. {
  279.     spielerLaden(playerid);
  280.     new path[128];
  281.     format(path,sizeof(path), "/accounts/%s.ini", spielerName(playerid));
  282.     switch(GetPVarInt(playerid,"Level"))
  283.     {
  284.         case 0:
  285.         {
  286.             ResetPlayerWeapons(playerid);
  287.             GivePlayerWeapon(playerid, 22, 20000);
  288.         }
  289.         case 1:
  290.         {
  291.             ResetPlayerWeapons(playerid);
  292.             GivePlayerWeapon(playerid, 23, 20000);
  293.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 1/21.");
  294.         }
  295.         case 2:
  296.         {
  297.             ResetPlayerWeapons(playerid);
  298.             GivePlayerWeapon(playerid, 24, 20000);
  299.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 2/21.");
  300.         }
  301.         case 3:
  302.         {
  303.             ResetPlayerWeapons(playerid);
  304.             GivePlayerWeapon(playerid, 25, 20000);
  305.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 3/21.");
  306.         }
  307.         case 4:
  308.         {
  309.             ResetPlayerWeapons(playerid);
  310.             GivePlayerWeapon(playerid, 27, 20000);
  311.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 4/21.");
  312.         }
  313.         case 5:
  314.         {
  315.             ResetPlayerWeapons(playerid);
  316.             GivePlayerWeapon(playerid, 26, 20000);
  317.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 5/21.");
  318.         }
  319.         case 6:
  320.         {
  321.             ResetPlayerWeapons(playerid);
  322.             GivePlayerWeapon(playerid, 28, 20000);
  323.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 6/21.");
  324.         }
  325.         case 7:
  326.         {
  327.             ResetPlayerWeapons(playerid);
  328.             GivePlayerWeapon(playerid, 29, 20000);
  329.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 7/21.");
  330.         }
  331.         case 8:
  332.         {
  333.             ResetPlayerWeapons(playerid);
  334.             GivePlayerWeapon(playerid, 32, 20000);
  335.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 8/21.");
  336.         }
  337.         case 9:
  338.         {
  339.             ResetPlayerWeapons(playerid);
  340.             GivePlayerWeapon(playerid, 30, 20000);
  341.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 9/21.");
  342.         }
  343.         case 10:
  344.         {
  345.             ResetPlayerWeapons(playerid);
  346.             GivePlayerWeapon(playerid, 31, 20000);
  347.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 10/21.");
  348.         }
  349.         case 11:
  350.         {
  351.             ResetPlayerWeapons(playerid);
  352.             GivePlayerWeapon(playerid, 18, 20000);
  353.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 11/21.");
  354.         }
  355.         case 12:
  356.         {
  357.             ResetPlayerWeapons(playerid);
  358.             GivePlayerWeapon(playerid, 9, 1);
  359.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 12/21.");
  360.         }
  361.         case 13:
  362.         {
  363.             ResetPlayerWeapons(playerid);
  364.             GivePlayerWeapon(playerid, 37, 20000);
  365.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 13/21.");
  366.         }
  367.         case 14:
  368.         {
  369.             ResetPlayerWeapons(playerid);
  370.             GivePlayerWeapon(playerid, 38, 20000);
  371.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 14/21.");
  372.         }
  373.         case 15:
  374.         {
  375.             ResetPlayerWeapons(playerid);
  376.             GivePlayerWeapon(playerid, 35, 20000);
  377.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 15/21.");
  378.         }
  379.         case 16:
  380.         {
  381.             ResetPlayerWeapons(playerid);
  382.             GivePlayerWeapon(playerid, 36, 20000);
  383.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 16/21.");
  384.         }
  385.         case 17:
  386.         {
  387.             ResetPlayerWeapons(playerid);
  388.             GivePlayerWeapon(playerid, 39, 20000);
  389.             GivePlayerWeapon(playerid, 40, 1);
  390.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 17/21.");
  391.         }
  392.         case 18:
  393.         {
  394.             ResetPlayerWeapons(playerid);
  395.             GivePlayerWeapon(playerid, 41, 20000);
  396.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 18/21.");
  397.         }
  398.         case 19:
  399.         {
  400.             ResetPlayerWeapons(playerid);
  401.             GivePlayerWeapon(playerid, 42, 20000);
  402.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 19/21.");
  403.         }
  404.         case 20:
  405.         {
  406.             ResetPlayerWeapons(playerid);
  407.             GivePlayerWeapon(playerid, 4, 1);
  408.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 20/21.");
  409.         }
  410.         case 21:
  411.         {
  412.             ResetPlayerWeapons(playerid);
  413.             GivePlayerWeapon(playerid, 16, 3);
  414.             SendClientMessage(playerid, COLOR_GREEN, "Du bist Level 21/21.");
  415.         }
  416.         case 22:
  417.         {
  418.             for(new i; i < MAX_PLAYERS; i++)
  419.             {
  420.                 if(!IsPlayerConnected(i)) return 0;
  421.                 TogglePlayerControllable(i,0);
  422.                 for(new bra=0; bra < 6; bra++)
  423.                 {
  424.                     new nach[128];
  425.                     format(nach, sizeof(nach), "Spieler %s hat diese Runde gewonnen!", spielerName(playerid));
  426.                     SetPVarInt(playerid, "Gewonnen", GetPVarInt(playerid, "Gewonnen") + 1);
  427.                     SendClientMessage(playerid,COLOR_GREEN, nach);
  428.                     SetTimerEx("RoundStart", 5000, 0, "i", playerid);
  429.                     TextDrawHideForAll(fuehrender);
  430.                     spielerSpeichern(playerid);
  431.                 }
  432.             }
  433.         }
  434.     }
  435.     return 1;
  436. }
  437.  
  438. public OnPlayerDeath(playerid, killerid, reason)
  439. {
  440.     spielerLaden(playerid);
  441.     if(killerid == playerid)
  442.     {
  443.         SendClientMessage(playerid, COLOR_RED, "Du hast Selbstmord begangen, und hast somit ein Level verloren!");
  444.         SetPVarInt(playerid, "Level", GetPVarInt(playerid, "Level") - 1);
  445.         spielerSpeichern(playerid);
  446.     }
  447.     if(killerid != INVALID_PLAYER_ID)
  448.     {
  449.         if(reason == 0)
  450.         {
  451.             if(GetPVarInt(playerid, "Level") > 0)
  452.             {
  453.                 SetPVarInt(killerid, "Level",GetPVarInt(killerid, "Level") + 1);
  454.                 SetPVarInt(playerid, "Level",GetPVarInt(playerid, "Level") - 1);
  455.                 spielerSpeichern(killerid);
  456.                 spielerSpeichern(playerid);
  457.                 levelUp(killerid);
  458.                 levelUp(playerid);
  459.                 naechstesLevel(killerid);
  460.                 naechstesLevel(playerid);
  461.             }
  462.         }
  463.         if(reason != 53 || reason != 54)
  464.         {
  465.             SetPVarInt(killerid,"Level", GetPVarInt(killerid, "Level") + 1);
  466.             spielerSpeichern(killerid);
  467.             levelUp(killerid);
  468.             naechstesLevel(killerid);
  469.         }
  470.     }
  471.     hoechstesLevel();
  472.     TextDrawHideForPlayer(playerid, fuehrender);
  473.     return 1;
  474. }
  475.  
  476. forward hoechstesLevel();
  477. public hoechstesLevel()
  478. {
  479.     new msg[128];
  480.     new pID, temp;
  481.     for(new i; i < MAX_PLAYERS; i++)
  482.     {
  483.         if((temp < GetPVarInt(i, "Level")))
  484.         {
  485.             temp = GetPVarInt(i, "Level"), pID = i;
  486.         }
  487.     }  
  488.     format(msg, sizeof(msg), "Fuehrender Spieler: %s Level: %i", spielerName(pID), temp);
  489.     TextDrawSetString(fuehrender, msg);
  490.     return 1;
  491. }
  492.  
  493. public OnVehicleSpawn(vehicleid)
  494. {
  495.     return 1;
  496. }
  497.  
  498. public OnVehicleDeath(vehicleid, killerid)
  499. {
  500.     return 1;
  501. }
  502.  
  503. public OnPlayerText(playerid, text[])
  504. {
  505.     return 1;
  506. }
  507.  
  508. public OnPlayerCommandText(playerid, cmdtext[])
  509. {
  510.     if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  511.     {
  512.         // Do something here
  513.         return 1;
  514.     }
  515.     return 0;
  516. }
  517.  
  518. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  519. {
  520.     return 1;
  521. }
  522.  
  523. public OnPlayerExitVehicle(playerid, vehicleid)
  524. {
  525.     return 1;
  526. }
  527.  
  528. public OnPlayerStateChange(playerid, newstate, oldstate)
  529. {
  530.     return 1;
  531. }
  532.  
  533. public OnPlayerEnterCheckpoint(playerid)
  534. {
  535.     return 1;
  536. }
  537.  
  538. public OnPlayerLeaveCheckpoint(playerid)
  539. {
  540.     return 1;
  541. }
  542.  
  543. public OnPlayerEnterRaceCheckpoint(playerid)
  544. {
  545.     return 1;
  546. }
  547.  
  548. public OnPlayerLeaveRaceCheckpoint(playerid)
  549. {
  550.     return 1;
  551. }
  552.  
  553. public OnRconCommand(cmd[])
  554. {
  555.     return 1;
  556. }
  557.  
  558. public OnPlayerRequestSpawn(playerid)
  559. {
  560.     return 1;
  561. }
  562.  
  563. public OnObjectMoved(objectid)
  564. {
  565.     return 1;
  566. }
  567.  
  568. public OnPlayerObjectMoved(playerid, objectid)
  569. {
  570.     return 1;
  571. }
  572.  
  573. public OnPlayerPickUpPickup(playerid, pickupid)
  574. {
  575.     return 1;
  576. }
  577.  
  578. public OnVehicleMod(playerid, vehicleid, componentid)
  579. {
  580.     return 1;
  581. }
  582.  
  583. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  584. {
  585.     return 1;
  586. }
  587.  
  588. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  589. {
  590.     return 1;
  591. }
  592.  
  593. public OnPlayerSelectedMenuRow(playerid, row)
  594. {
  595.     return 1;
  596. }
  597.  
  598. public OnPlayerExitedMenu(playerid)
  599. {
  600.     return 1;
  601. }
  602.  
  603. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  604. {
  605.     return 1;
  606. }
  607.  
  608. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  609. {
  610.     return 1;
  611. }
  612.  
  613. public OnRconLoginAttempt(ip[], password[], success)
  614. {
  615.     return 1;
  616. }
  617.  
  618. public OnPlayerUpdate(playerid)
  619. {
  620.     return 1;
  621. }
  622.  
  623. public OnPlayerStreamIn(playerid, forplayerid)
  624. {
  625.     return 1;
  626. }
  627.  
  628. public OnPlayerStreamOut(playerid, forplayerid)
  629. {
  630.     return 1;
  631. }
  632.  
  633. public OnVehicleStreamIn(vehicleid, forplayerid)
  634. {
  635.     return 1;
  636. }
  637.  
  638. public OnVehicleStreamOut(vehicleid, forplayerid)
  639. {
  640.     return 1;
  641. }
  642.  
  643. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  644. {
  645.     new path[128];
  646.     format(path,sizeof(path), "/accounts/%s.ini", spielerName(playerid));
  647.     switch(dialogid)
  648.     {
  649.         case DIALOG_REGIST1:
  650.         {
  651.             if(!response)
  652.             {
  653.                 Kick(playerid);
  654.             }
  655.             else
  656.             {
  657.                 new pwlength = strlen(inputtext);
  658.                 if(pwlength > 0)
  659.                 {
  660.                     new nachricht[238];
  661.                     format(nachricht, sizeof(nachricht), "Sie haben sich erfolgreich mit dem Namen %s registriert.", spielerName(playerid));
  662.                     dini_Create(path);
  663.                     dini_Set(path, "key", inputtext);
  664.                     dini_IntSet(path, "Level", 0);
  665.                     dini_IntSet(path, "banned", 0);
  666.                     dini_IntSet(path, "admin", 0);
  667.                     SendClientMessage(playerid, COLOR_TURKIS, nachricht);
  668.                     SendClientMessage(playerid, COLOR_TURKIS, "Das gesamte Team wünscht dir viel Spass beim spielen.");
  669.                     SendClientMessage(playerid, COLOR_TURKIS, "Solltest du Hilfe brauchen, gib /hilfe ein.");
  670.                 }
  671.                 else
  672.                 {
  673.                     ShowPlayerDialog(playerid, DIALOG_NOPW, DIALOG_STYLE_MSGBOX,"{FFBE00}Registrierung{FFFFFF} -GunGame-", "{FFFFFF}Bitte geben Sie ein Passwort ein.", "Weiter", "Abbrechen");
  674.                 }
  675.             }
  676.         }
  677.         case DIALOG_LOGIN:
  678.         {
  679.             if(!response)
  680.             {
  681.                 Kick(playerid);
  682.             }
  683.             else
  684.             {
  685.                 new pwlength = strlen(inputtext);
  686.                 if(pwlength > 0)
  687.                 {
  688.                     new pw[200];
  689.                     format(pw,sizeof(pw), "%s", dini_Get(path, "key"));
  690.                     if(strcmp(inputtext, pw) == 0)
  691.                     {
  692.                         spielerLaden(playerid);
  693.                         SendClientMessage(playerid, COLOR_WHITE, "|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||");
  694.                         SendClientMessage(playerid, COLOR_TURKIS, "Du hast dich erfolgreich eingeloggt!");
  695.                         SendClientMessage(playerid, COLOR_TURKIS, "Wir wünschen dir viel Spass beim spielen.");
  696.                         SendClientMessage(playerid, COLOR_WHITE, "|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||");
  697.                     }
  698.                     else
  699.                     {
  700.                         ShowPlayerDialog(playerid, DIALOG_WRONGPW, DIALOG_STYLE_MSGBOX, "{FFBE00}Login{FFFFFF} -GunGame-", "{FFFFFF}Sie haben ein falsches Passwort eingegeben!", "OK", "Abbrechen");
  701.                     }
  702.                 }
  703.                 else
  704.                 {
  705.                     ShowPlayerDialog(playerid, DIALOG_NOPW2, DIALOG_STYLE_MSGBOX,  "{FFBE00}Login{FFFFFF} -GunGame-", "{FFFFFF}Sie haben kein Passwort eingegeben.", "OK", "Abbrechen");
  706.                 }
  707.             }
  708.         }
  709.         case DIALOG_NOPW:
  710.         {
  711.             if(!response)
  712.             {
  713.                 Kick(playerid);
  714.             }
  715.             else
  716.             {
  717.                 ShowPlayerDialog(playerid, DIALOG_REGIST1, DIALOG_STYLE_PASSWORD,  "{FFBE00}Registrierung{FFFFFF} -GunGame-", "{FFFFFF}Geben Sie hier Ihr gewuenschtes Passwort ein.", "OK",  "Abbrechen");
  718.             }
  719.         }
  720.         case DIALOG_NOPW2:
  721.         {
  722.             if(!response)
  723.             {
  724.                 Kick(playerid);
  725.             }
  726.             else
  727.             {
  728.                  ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFBE00}Login{FFFFFF} -GunGame-", "{FFFFFF}Geben Sie Ihr Passwort ein.", "OK", "Abbrechen");
  729.             }
  730.         }
  731.         case DIALOG_WRONGPW:
  732.         {
  733.             if(!response)
  734.             {
  735.                 Kick(playerid);
  736.             }
  737.             else
  738.             {
  739.                  ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFBE00}Login{FFFFFF} -GunGame-", "{FFFFFF}Geben Sie hier Ihr Passwort ein.", "OK","Abbrechen");
  740.             }
  741.         }
  742.     }
  743.     return 1;
  744. }
  745.  
  746. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  747. {
  748.     new stats[258];
  749.     format(stats, sizeof(stats), "Spieler: %s [ID: %i], Level: %i, Spiele gewonnen: %i", spielerName(clickedplayerid), clickedplayerid, GetPVarInt(clickedplayerid, "Level"),GetPVarInt(clickedplayerid, "Gewonnen"));
  750.     SendClientMessage(playerid, COLOR_WHITE, stats);
  751.     return 1;
  752. }
  753.  
  754. ocmd:help(playerid,params[])
  755. {
  756.     SendClientMessage(playerid, COLOR_WHITE, "Was ist GunGame?");
  757.     SendClientMessage(playerid, COLOR_GREEN, "Gungame ist ein Mod, indem du deine Gegner mit");
  758.     SendClientMessage(playerid, COLOR_GREEN, "deiner Waffe töten musst, um eine neue Waffe zu bekommen.");
  759.     SendClientMessage(playerid, COLOR_GREEN, "Der erste Spieler, der Level 21 erreicht, gewinnt!");
  760.     SendClientMessage(playerid, COLOR_GREEN, "Solltest du Selbstmord begehen, verlierst du ein Level.");
  761.     SendClientMessage(playerid, COLOR_RED, "Dieser Gamemode wurde von DasNeo gescriptet.");
  762.     return 1;
  763. }
  764.  
  765. ocmd:kick(playerid,params[])
  766. {
  767.     if(GetPVarInt(playerid, "admin") == 1)
  768.     {
  769.         new id;
  770.         new reason[128];
  771.         if(sscanf(params,"us", id, reason)) return SendClientMessage(playerid, COLOR_RED, "Benutzung: /kick [ID] [Grund]");
  772.         new sendMSG[278];
  773.         format(sendMSG,sizeof(sendMSG), "[AdmCMD - Kick] Spieler %s wurde gekickt. Begründung: %s", spielerName(id), reason);
  774.         SendClientMessageToAll(COLOR_RED, sendMSG);
  775.         new printMSG[278];
  776.         format(printMSG, sizeof(printMSG), "KICK: %s hat %s gekickt. Begründung: %s", spielerName(playerid), spielerName(id), reason);
  777.         print(printMSG);
  778.         Kick(id);
  779.     }
  780.     return 1;
  781. }
  782.  
  783. ocmd:rr(playerid,params[])
  784. {
  785.     if(GetPVarInt(playerid, "admin") == 1)
  786.     {
  787.         new sendMSG[278];
  788.         format(sendMSG,sizeof(sendMSG), "[AdmCMD - RoundRestart] Admin %s hat die Runde neu gestartet.", spielerName(playerid));
  789.         SendClientMessageToAll(COLOR_RED, sendMSG);
  790.         new printMSG[278];
  791.         format(printMSG, sizeof(printMSG), "RR: %s hat die Runde neu gestartet.", spielerName(playerid));
  792.         print(printMSG);
  793.     }
  794.     return 1;
  795. }
  796.  
  797. ocmd:ban(playerid,params[])
  798. {
  799.     if(GetPVarInt(playerid, "admin") == 1)
  800.     {
  801.         new id;
  802.         new reason[128];
  803.         if(sscanf(params,"us", id, reason)) return SendClientMessage(playerid, COLOR_RED, "Benutzung: /ban [ID] [Grund]");
  804.         new sendMSG[278];
  805.         format(sendMSG,sizeof(sendMSG), "[AdmCMD - Ban] Spieler %s wurde gekickt. Begründung: %s", spielerName(id), reason);
  806.         SendClientMessageToAll(COLOR_RED, sendMSG);
  807.         new printMSG[278];
  808.         format(printMSG, sizeof(printMSG), "BAN: %s hat %s gekickt. Begründung: %s", spielerName(playerid), spielerName(id), reason);
  809.         print(printMSG);
  810.         SetPVarInt(id, "banned", 1);
  811.         spielerSpeichern(id);
  812.     }
  813.     return 1;
  814. }
  815.  
  816. stock sscanf(string[], format[], {Float,_}:...)
  817. {
  818.     #if defined isnull
  819.         if (isnull(string))
  820.     #else
  821.         if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  822.     #endif
  823.         {
  824.             return format[0];
  825.         }
  826.     #pragma tabsize 4
  827.     new
  828.         formatPos = 0,
  829.         stringPos = 0,
  830.         paramPos = 2,
  831.         paramCount = numargs(),
  832.         delim = ' ';
  833.     while (string[stringPos] && string[stringPos] <= ' ')
  834.     {
  835.         stringPos++;
  836.     }
  837.     while (paramPos < paramCount && string[stringPos])
  838.     {
  839.         switch (format[formatPos++])
  840.         {
  841.             case '\0':
  842.             {
  843.                 return 0;
  844.             }
  845.             case 'i', 'd':
  846.             {
  847.                 new
  848.                     neg = 1,
  849.                     num = 0,
  850.                     ch = string[stringPos];
  851.                 if (ch == '-')
  852.                 {
  853.                     neg = -1;
  854.                     ch = string[++stringPos];
  855.                 }
  856.                 do
  857.                 {
  858.                     stringPos++;
  859.                     if ('0' <= ch <= '9')
  860.                     {
  861.                         num = (num * 10) + (ch - '0');
  862.                     }
  863.                     else
  864.                     {
  865.                         return -1;
  866.                     }
  867.                 }
  868.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  869.                 setarg(paramPos, 0, num * neg);
  870.             }
  871.             case 'h', 'x':
  872.             {
  873.                 new
  874.                     num = 0,
  875.                     ch = string[stringPos];
  876.                 do
  877.                 {
  878.                     stringPos++;
  879.                     switch (ch)
  880.                     {
  881.                         case 'x', 'X':
  882.                         {
  883.                             num = 0;
  884.                             continue;
  885.                         }
  886.                         case '0' .. '9':
  887.                         {
  888.                             num = (num << 4) | (ch - '0');
  889.                         }
  890.                         case 'a' .. 'f':
  891.                         {
  892.                             num = (num << 4) | (ch - ('a' - 10));
  893.                         }
  894.                         case 'A' .. 'F':
  895.                         {
  896.                             num = (num << 4) | (ch - ('A' - 10));
  897.                         }
  898.                         default:
  899.                         {
  900.                             return -1;
  901.                         }
  902.                     }
  903.                 }
  904.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  905.                 setarg(paramPos, 0, num);
  906.             }
  907.             case 'c':
  908.             {
  909.                 setarg(paramPos, 0, string[stringPos++]);
  910.             }
  911.             case 'f':
  912.             {
  913.  
  914.                 new changestr[16], changepos = 0, strpos = stringPos;    
  915.                 while(changepos < 16 && string[strpos] && string[strpos] != delim)
  916.                 {
  917.                     changestr[changepos++] = string[strpos++];
  918.                     }
  919.                 changestr[changepos] = '\0';
  920.                 setarg(paramPos,0,_:floatstr(changestr));
  921.             }
  922.             case 'p':
  923.             {
  924.                 delim = format[formatPos++];
  925.                 continue;
  926.             }
  927.             case '\'':
  928.             {
  929.                 new
  930.                     end = formatPos - 1,
  931.                     ch;
  932.                 while ((ch = format[++end]) && ch != '\'') {}
  933.                 if (!ch)
  934.                 {
  935.                     return -1;
  936.                 }
  937.                 format[end] = '\0';
  938.                 if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  939.                 {
  940.                     if (format[end + 1])
  941.                     {
  942.                         return -1;
  943.                     }
  944.                     return 0;
  945.                 }
  946.                 format[end] = '\'';
  947.                 stringPos = ch + (end - formatPos);
  948.                 formatPos = end + 1;
  949.             }
  950.             case 'u':
  951.             {
  952.                 new
  953.                     end = stringPos - 1,
  954.                     id = 0,
  955.                     bool:num = true,
  956.                     ch;
  957.                 while ((ch = string[++end]) && ch != delim)
  958.                 {
  959.                     if (num)
  960.                     {
  961.                         if ('0' <= ch <= '9')
  962.                         {
  963.                             id = (id * 10) + (ch - '0');
  964.                         }
  965.                         else
  966.                         {
  967.                             num = false;
  968.                         }
  969.                     }
  970.                 }
  971.                 if (num && IsPlayerConnected(id))
  972.                 {
  973.                     setarg(paramPos, 0, id);
  974.                 }
  975.                 else
  976.                 {
  977.                     #if !defined foreach
  978.                         #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  979.                         #define __SSCANF_FOREACH__
  980.                     #endif
  981.                     string[end] = '\0';
  982.                     num = false;
  983.                     new
  984.                         name[MAX_PLAYER_NAME];
  985.                     id = end - stringPos;
  986.                     foreach (Player, playerid)
  987.                     {
  988.                         GetPlayerName(playerid, name, sizeof (name));
  989.                         if (!strcmp(name, string[stringPos], true, id))
  990.                         {
  991.                             setarg(paramPos, 0, playerid);
  992.                             num = true;
  993.                             break;
  994.                         }
  995.                     }
  996.                     if (!num)
  997.                     {
  998.                         setarg(paramPos, 0, INVALID_PLAYER_ID);
  999.                     }
  1000.                     string[end] = ch;
  1001.                     #if defined __SSCANF_FOREACH__
  1002.                         #undef foreach
  1003.                         #undef __SSCANF_FOREACH__
  1004.                     #endif
  1005.                 }
  1006.                 stringPos = end;
  1007.             }
  1008.             case 's', 'z':
  1009.             {
  1010.                 new
  1011.                     i = 0,
  1012.                     ch;
  1013.                 if (format[formatPos])
  1014.                 {
  1015.                     while ((ch = string[stringPos++]) && ch != delim)
  1016.                     {
  1017.                         setarg(paramPos, i++, ch);
  1018.                     }
  1019.                     if (!i)
  1020.                     {
  1021.                         return -1;
  1022.                     }
  1023.                 }
  1024.                 else
  1025.                 {
  1026.                     while ((ch = string[stringPos++]))
  1027.                     {
  1028.                         setarg(paramPos, i++, ch);
  1029.                     }
  1030.                 }
  1031.                 stringPos--;
  1032.                 setarg(paramPos, i, '\0');
  1033.             }
  1034.             default:
  1035.             {
  1036.                 continue;
  1037.             }
  1038.         }
  1039.         while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  1040.         {
  1041.             stringPos++;
  1042.         }
  1043.         while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  1044.         {
  1045.             stringPos++;
  1046.         }
  1047.         paramPos++;
  1048.     }
  1049.     do
  1050.     {
  1051.         if ((delim = format[formatPos++]) > ' ')
  1052.         {
  1053.             if (delim == '\'')
  1054.             {
  1055.                 while ((delim = format[formatPos++]) && delim != '\'') {}
  1056.             }
  1057.             else if (delim != 'z')
  1058.             {
  1059.                 return delim;
  1060.             }
  1061.         }
  1062.     }
  1063.     while (delim > ' ');
  1064.     return 0;
  1065. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement