Advertisement
Guest User

Untitled

a guest
Sep 24th, 2010
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 21.93 KB | None | 0 0
  1. /*
  2.     Coypright by Atrox, DMA und Sebihunter
  3. */
  4. #define SAMP
  5. #include <samp\a_samp>
  6.  
  7. // DB
  8. new DB:HandleGlobal
  9.  
  10. // Player
  11.  
  12. new HFGonline[MAX_PLAYERS], HFGchannel[MAX_PLAYERS],
  13.     TutorialStep[MAX_PLAYERS], TutorialTimer[MAX_PLAYERS],
  14.     supportModus[MAX_PLAYERS], supportSelect[MAX_PLAYERS],
  15.     name[MAX_PLAYERS][MAX_PLAYER_NAME]
  16.  
  17. // Staaten
  18. new Float:Hospitals[][3] =
  19. {
  20.     { 0.0, 0.0, 7.0 }, // SF
  21.     { 0.0, 0.0, 7.0 }, // LS
  22.     { 0.0, 0.0, 7.0 }, // LV
  23.     { 0.0, 0.0, 7.0 }, // Wüste
  24.     { 0.0, 0.0, 7.0 }  // AP
  25. }
  26.  
  27. // Forward
  28. forward TutorialForPlayer(playerid)
  29. forward DoesPlayerHasTag(playerid,tag[]);
  30.  
  31. // DIALOG
  32. #define DIALOG_LOGIN 1000
  33. #define DIALOG_REGISTER 1001
  34. #define DIALOG_OKAY 1002
  35. #define DIALOG_WARNING 1003
  36. #define DIALOG_INVENTAR 1004
  37. #define DIALOG_IOBJECT 1005
  38. #define DIALOG_PSTAT 1006
  39. #define DIALOG_SOPTIONS 1007
  40. #define DIALOG_STATE_LIST 1008
  41.  
  42. //Colors
  43. #define COLOR_GREEN 0x21DD00FF
  44. #define COLOR_GOLD 0xCFB53BFF
  45. #define COLOR_ADMIN_RED 0xFB0000FF
  46. #define COLOR_LIGHTRED 0xFF8080FF
  47. #define COLOR_LIGHTBLUE 0x00C2ECFF
  48. #define COLOR_PURPLE 0xB360FDFF
  49. #define COLOR_WHITE 0xFFFFFFFF
  50. #define COLOR_DARKPINK 0xE100E1FF
  51. #define COLOR_SYSTEM 0xEFEFF7AA
  52. #define COLOR_NICESKY 0x99FFFFAA
  53. #define COLOR_GRAY 0xCECECEFF
  54. #define COLOR_PINK 0xFF66FFAA
  55. #define COLOR_DBLUE 0x2641FEAA
  56. #define COLOR_GRAD1 0xB4B5B7FF
  57. #define COLOR_GRAD2 0xBFC0C2FF
  58. #define COLOR_GRAD3 0xCBCCCEFF
  59. #define COLOR_GRAD4 0xD8D8D8FF
  60. #define COLOR_GRAD5 0xE3E3E3FF
  61. #define COLOR_GRAD6 0xF0F0F0FF
  62. #define COLOR_YELLOW2 0xF5DEB3AA
  63. #define COLOR_GREY 0xAFAFAFAA
  64. #define COLOR_CYAN 0x00FFFFAA
  65.  
  66. #define COLOR_SICHTBAR 0xAFAFAFFF
  67. #define COLOR_UNSICHTBAR 0xAFAFAF00
  68.  
  69. #define ANTI_MONEY_CHEAT_FAKTOR -1
  70.  
  71. main()
  72. {
  73.     print "\n----------------------------------"
  74.     print " SA-MP.de RP Server by Atrox, DMA und Sebihunter"
  75.     print "----------------------------------\n"
  76.     if(!CheckInstall())
  77.         Install
  78. }
  79. //=================[Wichtige Publics]=====================
  80. public DoesPlayerHasTag(playerid,tag[])
  81. {
  82.     return (strfind(name[playerid],tag,true) != -1) ? 0 : 1;
  83. }
  84. public OnGameModeInit()
  85. {
  86.     HandleGlobal = db_open("db_samp")
  87.     if(!CheckInstall())
  88.         SetGameModeText "SA-MP.de RP Server"
  89.     else
  90.         SetGameModeText GetFieldData("server", "name")
  91.     LimitGlobalChatRadius 30.0
  92.     AddPlayerClass 0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0
  93.     return 1
  94. }
  95.  
  96. public OnGameModeExit()
  97. {
  98.     db_close HandleGlobal
  99.     return 1
  100. }
  101.  
  102. public OnPlayerRequestClass(playerid, classid)
  103. {
  104.     return 1
  105. }
  106.  
  107. public OnPlayerConnect(playerid)
  108. {
  109.     GetPlayerName(playerid,name[playerid],MAX_PLAYER_NAME);
  110.     if(!ExistPlayer(playerid)) {
  111.         ShowPlayerDialog playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registrieren", "Dein Registrierungspasswort:", "Ok", "Abbrechen"
  112.     }
  113.     else
  114.         ShowPlayerDialog playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Bitte gebe dein Loginpasswort ein", "Ok", "Abbrechen"
  115.     return 1
  116. }
  117.  
  118. public OnPlayerDisconnect(playerid, reason)
  119. {
  120.     // Save
  121.     if(ExistPlayer(playerid))
  122.     {
  123.         // money
  124.         new savestr[32]
  125.         format savestr, sizeof savestr, "%d", GetPlayerMoney(playerid)
  126.         UpdatePlayerData playerid, "money", savestr
  127.         // pos
  128.         new Float:sPP[3]
  129.         GetPlayerPos playerid, sPP[0], sPP[1], sPP[2]
  130.         format savestr, sizeof savestr, "%f", sPP[0]
  131.         UpdatePlayerData playerid, "x", savestr // x
  132.         format savestr, sizeof savestr, "%f", sPP[1]
  133.         UpdatePlayerData playerid, "y", savestr // y
  134.         format savestr, sizeof savestr, "%f", sPP[2]
  135.         UpdatePlayerData playerid, "z", savestr // z
  136.         format savestr, sizeof savestr, "%d", GetPlayerInterior(playerid)
  137.         UpdatePlayerData playerid, "pint", savestr
  138.     }
  139.     // Reset
  140.     if(TutorialStep[playerid])
  141.         KillTimer TutorialTimer[playerid]
  142.     HFGonline[playerid] = 0
  143.     TutorialStep[playerid] = 0
  144.     supportModus[playerid] = 0
  145.     return 1
  146. }
  147.  
  148. public OnPlayerSpawn(playerid)
  149. {
  150.     if(ExistPlayer(playerid))
  151.     {
  152.         if(!strcmp(GetPlayerData(playerid, "state"), "lc") || !strcmp(GetPlayerData(playerid, "state"), "none"))
  153.         {
  154.             SetPlayerInterior playerid, 1
  155.             SetPlayerPos playerid, -808.1443, 500.9406, 1360.1484
  156.             SendClientMessage playerid, 0xFF0000AA, "Du hast noch keine Staatsangehörigkeit."
  157.             return 1
  158.         }
  159.     }
  160.     if(floatstr(GetPlayerData(playerid, "x")) && floatstr(GetPlayerData(playerid, "y")) && floatstr(GetPlayerData(playerid, "z")))
  161.         SetPlayerPos playerid, floatstr(GetPlayerData(playerid, "x")), floatstr(GetPlayerData(playerid, "y")), floatstr(GetPlayerData(playerid, "z"))
  162.     SetPlayerInterior playerid, strval(GetPlayerData(playerid, "pint"))
  163.     return 1
  164. }
  165.  
  166. public OnPlayerDeath(playerid, killerid, reason)
  167. {
  168.     return 1
  169. }
  170.  
  171. public OnVehicleSpawn(vehicleid)
  172. {
  173.     return 1
  174. }
  175.  
  176. public OnVehicleDeath(vehicleid, killerid)
  177. {
  178.     return 1
  179. }
  180.  
  181. public OnPlayerText(playerid, text[])
  182. {
  183.     // HFG
  184.     if(HFGonline[playerid])
  185.     {
  186.         for(new i = 0; i < MAX_PLAYERS; i++)
  187.         {
  188.             if(HFGonline[i] && HFGchannel[i] == HFGchannel[playerid])
  189.             {
  190.                 new Float:x, Float:y, Float:z
  191.                 GetPlayerPos playerid, x, y, z
  192.                 new Float:distance, hfg_send[128]
  193.                 if(HFGchannel[i] != 9)
  194.                     distance = 90.0
  195.                 else
  196.                     distance = 160.0
  197.                 format hfg_send, sizeof hfg_send, "Funk: %s", text
  198.                 if(!IsPlayerInRangeOfPoint(i, distance, x, y, z))
  199.                 {
  200.                     for(new j = 0; j < strlen(hfg_send); i++)
  201.                     {
  202.                         new _rand = random(10)
  203.                         if(_rand == 3 || _rand == 8)
  204.                             hfg_send[j] = '#'
  205.                     }
  206.                     SendClientMessage i, 0xFFCC77AA, hfg_send
  207.                 }
  208.                 else
  209.                     SendClientMessage i, 0xFFCC77AA, hfg_send
  210.             }
  211.         }
  212.     }
  213.     return 1
  214. }
  215.  
  216. public OnPlayerCommandText(playerid, cmdtext[])
  217. {
  218.     if(!strcmp(cmdtext, "/help"))
  219.     {
  220.         SendClientMessage playerid, 0xFF0000AA, "Spiel: /hfg, /kaufen, /inventar, /stat"
  221.         return 1
  222.     }
  223.     // debug
  224.     if(!strcmp(cmdtext, "/make me admin"))
  225.     {
  226.         UpdatePlayerData playerid, "admin", "2"
  227.         return 1
  228.     }
  229.     if(!strcmp(cmdtext, "/make my hfg to leet"))
  230.     {
  231.         UpdatePlayerData playerid, "hfg", "1"
  232.         return 1
  233.     }
  234.     if(!strcmp(cmdtext, "/make my hfg to low"))
  235.     {
  236.         UpdatePlayerData playerid, "hfg", "0"
  237.         return 1
  238.     }
  239.     if(!strcmp(cmdtext, "/give me money"))
  240.     {
  241.         GivePlayerMoney playerid, -1000
  242.         return 1
  243.     }
  244.     if(!strcmp(cmdtext, "/list debug"))
  245.     {
  246.         SendClientMessage playerid, 0xFF0000AA, "/make me admin, /make my hfg to [leet/low], /give me money"
  247.         return 1
  248.     }
  249.     // admin cmd
  250.     if(ExistPlayer(playerid))
  251.     {
  252.         // Player
  253.         if(!strcmp(strget(cmdtext, 0), "/hfg") || !strcmp(strget(cmdtext, 0), "/wt"))
  254.         {
  255.             // Handfunkgerät
  256.             if(!strcmp(strget(cmdtext, 1), "an") || !strcmp(strget(cmdtext, 1), "on"))
  257.             {
  258.                 SendClientMessage playerid, 0xFF0000AA, "Handfunkgerät auf Kanal 0..."
  259.                 HFGonline[playerid] = 1
  260.                 HFGchannel[playerid] = 0
  261.                 return 1
  262.             }
  263.             else if(!strcmp(strget(cmdtext, 1), "channel") || !strcmp(strget(cmdtext, 1), "kanal"))
  264.             {
  265.                 if(!strval(GetPlayerData(playerid, "hfg")) && strval(strget(cmdtext, 2)) < 2)
  266.                 {
  267.                     HFGchannel[playerid] = strval(strget(cmdtext, 2))
  268.                     SendClientMessage playerid, 0xFF0000AA, "Kanal gewechselt."
  269.                     return 1
  270.                 }
  271.                 if(!strval(GetPlayerData(playerid, "hfg")))
  272.                 {
  273.                     SendClientMessage playerid, 0xFF0000AA, "Du kannst diesen Kanal nicht empfangen."
  274.                     return 1
  275.                 }
  276.                 if((strval(strget(cmdtext, 2)) >= 0 && strval(strget(cmdtext, 2)) <= 6) || strval(strget(cmdtext, 2)) == 9)
  277.                     HFGchannel[playerid] = strval(strget(cmdtext, 2))
  278.                 else
  279.                     return SendClientMessage(playerid, 0xFF0000AA, "Dieser Kanal ist unbekannt.")
  280.                 if(strval(strget(cmdtext, 2)) == 9)
  281.                     SendClientMessage playerid, 0xFF0000AA, "Dieser Kanal wird überwacht und sendeverstärkt!"
  282.                 SendClientMessage playerid, 0xFF0000AA, "Kanal gewechselt."
  283.                 return 1
  284.             }
  285.             else if(!strcmp(strget(cmdtext, 1), "aus") || !strcmp(strget(cmdtext, 1), "off"))
  286.             {
  287.                 SendClientMessage playerid, 0xFF0000AA, "Das Handfungerät wurde ausgeschalten."
  288.                 return 1
  289.             }
  290.             else
  291.             {
  292.                 SendClientMessage playerid, 0xFF0000AA, "/hfg [an/aus], /hfg kanal [id]"
  293.                 return 1
  294.             }
  295.         }
  296.         // Statistik
  297.         if(!strcmp(cmdtext, "/stat"))
  298.         {
  299.             new playerStat[256], puffer[256]
  300.             puffer = GetPlayerData(playerid, "state")
  301.             if(!strcmp(puffer, "sf"))
  302.             {
  303.                 format playerStat, sizeof playerStat, "Staat: San Fierror"
  304.             }
  305.             else if(!strcmp(puffer, "ls"))
  306.             {
  307.                 format playerStat, sizeof playerStat, "Staat: Los Santos"
  308.             }
  309.             else if(!strcmp(puffer, "lv"))
  310.             {
  311.                 format playerStat, sizeof playerStat, "Staat: Las Venturas"
  312.             }
  313.             else if(!strcmp(puffer, "ws"))
  314.             {
  315.                 format playerStat, sizeof playerStat, "Staat: Wüste"
  316.             }
  317.             else if(!strcmp(puffer, "ap"))
  318.             {
  319.                 format playerStat, sizeof playerStat, "Staat: Angel Pine"
  320.             }
  321.             else
  322.             {
  323.                 format playerStat, sizeof playerStat, "Staat: Liberty City (Tourist)"
  324.             }
  325.             ShowPlayerDialog playerid, DIALOG_PSTAT, DIALOG_STYLE_MSGBOX, "Statistik", playerStat, "Ok", "Annulieren"
  326.             return 1
  327.         }
  328.         // inventar
  329.         if(!strcmp(cmdtext, "/inventar"))
  330.         {
  331.             new playerInventar[256] // generic
  332.             format playerInventar, sizeof playerInventar, "Handfunkgerät Klasse %s\n", GetPlayerData(playerid, "hfg")
  333.             ShowPlayerDialog playerid, DIALOG_INVENTAR, DIALOG_STYLE_LIST, "Inventar", playerInventar, "Ansehen", "Schließen"
  334.             return 1
  335.         }
  336.         // kaufen
  337.         if(!strcmp(cmdtext, "/kaufen"))
  338.         {
  339.             SendClientMessage playerid, 0xFF0000AA, "Hier gibt es nichts zu sehen."
  340.             return 1
  341.         }
  342.         // Supporter
  343.         if(strval(GetPlayerData(playerid, "admin")) >= 1)
  344.         {
  345.             if(!strcmp(cmdtext, "/support"))
  346.             {
  347.                 supportModus[playerid] = supportModus[playerid] ? 0 : 1
  348.                 SendClientMessage playerid, 0xFF0000AA, "Supportmodus wurde de/aktiviert."
  349.                 return 1
  350.             }
  351.             if(!strcmp(strget(cmdtext, 0, ' '), "/select"))
  352.             {
  353.                 new supId, savestr[256]
  354.                 if(!strcmp(strget(cmdtext, 1), "{self}"))
  355.                     supId = playerid;
  356.                 else
  357.                     supId = strval(strget(cmdtext, 1))
  358.                 if(IsPlayerConnected(supId))
  359.                 {
  360.                     if(!strcmp(strget(cmdtext, 2), "pos"))
  361.                     {
  362.                         if(!strcmp(strget(cmdtext, 3), "reset"))
  363.                         {
  364.                             format savestr, sizeof savestr, "%f", 1958.3783
  365.                             UpdatePlayerData supId, "x", savestr // x
  366.                             format savestr, sizeof savestr, "%f", 1343.1572
  367.                             UpdatePlayerData supId, "y", savestr // y
  368.                             format savestr, sizeof savestr, "%f", 15.3746
  369.                             UpdatePlayerData supId, "z", savestr // z
  370.                             format savestr, sizeof savestr, "%d", 0
  371.                             UpdatePlayerData supId, "pint", savestr
  372.                             SetPlayerPos supId, 1958.3783, 1343.1572, 15.3746
  373.                             SendClientMessage playerid, 0xFF0000AA, "Spieler Position wurde auf die Debug Position gesetzt."
  374.                             return 1
  375.                         }
  376.                         else
  377.                             SendClientMessage playerid, 0xFF0000AA, "/select [ID] pos [reset/none]"
  378.                     }
  379.                 }
  380.                 else
  381.                     SendClientMessage playerid, 0xFF0000AA, "Dieser Spieler ist nicht verbunden."
  382.             }
  383.             if(!strcmp(strget(cmdtext, 0, ' '), "/set"))
  384.             {
  385.                 if(!strcmp(strget(strget(cmdtext, 0, '='), 0, ' '), "/set playerstate"))
  386.                 {
  387.                     new supId = strval(strget(cmdtext, 1, '='))
  388.                     if(IsPlayerConnected(supId))
  389.                     {
  390.                         UpdatePlayerData supId, "state", strget(strget(cmdtext, 1, '='), 1, ' ')
  391.                     }
  392.                     else
  393.                         SendClientMessage playerid, 0xFF0000AA, "Dieser Spieler ist nicht verbunden."
  394.                     return 1
  395.                 }
  396.             }
  397.         }
  398.         // Admin
  399.         if(!strcmp(GetPlayerData(playerid, "admin"), "2"))
  400.         {
  401.             // Highlevel cmds wie /update
  402.             if(!strcmp(strget(cmdtext, 0, ' '), "/set"))
  403.             {
  404.                 if(!strcmp(strget(cmdtext, 0, '='), "/set gamemodename"))
  405.                 {
  406.                     UpdateFieldData "server", "name", strget(cmdtext, 1, '=')
  407.                     SetGameModeText strget(cmdtext, 1, '=')
  408.                     SendClientMessage playerid, 0xFF0000AA, "gamemodename geändert."
  409.                 }
  410.                 else if(!strcmp(strget(cmdtext, 0, '='), "/set owner"))
  411.                 {
  412.                     UpdateFieldData "server", "name", strget(cmdtext, 1, '=')
  413.                     SendClientMessage playerid, 0xFF0000AA, "Serverbesitzernamen geändert."
  414.                 }
  415.                 else
  416.                 {
  417.                     SendClientMessage playerid, 0xFF0000AA, "/set [gamemodename/owner]=[value]"
  418.                 }
  419.                 return 1
  420.             }
  421.             if(!strcmp(strget(cmdtext, 0), "/update"))
  422.             {
  423.                 new fname[32], line[256]
  424.                 format fname, sizeof fname, "u%d_samp", strget(cmdtext, 1)
  425.                 if(!fexist(fname))
  426.                 {
  427.                     SendClientMessage playerid, 0xFF0000AA, "Du hast kein Update bereit liegen."
  428.                     return 1
  429.                 }
  430.                 if(!strcmp(strget(cmdtext, 1), GetFieldData("server", "version")))
  431.                 {
  432.                     SendClientMessage playerid, 0xFF0000AA, "Das Update wird nun ausgeführt."
  433.                     print "Updates werden ausgeführt..."
  434.                     new File:f = fopen(fname, io_read)
  435.                     while(fread(f, line))
  436.                     {
  437.                         if(!strcmp(strget(line, 0, ':'), "SAMP"))
  438.                         {
  439.                             SendRconCommand line
  440.                             printf "Rcon command: %s", strget(line, 1, ':')
  441.                         }
  442.                         else
  443.                         {
  444.                             db_query HandleGlobal, line
  445.                             printf "Update: %s\n...done", line
  446.                         }
  447.                     }
  448.                     fclose f
  449.                     UpdateFieldData "server", "version", strget(cmdtext, 1)
  450.                     ShowPlayerDialog playerid, DIALOG_WARNING, DIALOG_STYLE_MSGBOX, "Update", "Das Update wurde ausgeführt.", "Ok", "Abbrechen"
  451.                 }
  452.                 else
  453.                     SendClientMessage playerid, 0xFF0069AA, "Deine Version ist neuer!"
  454.                 return 1
  455.             }
  456.         }
  457.     }
  458.     return 0
  459. }
  460.  
  461. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  462. {
  463.     return 1
  464. }
  465.  
  466. public OnPlayerExitVehicle(playerid, vehicleid)
  467. {
  468.     return 1
  469. }
  470.  
  471. public OnPlayerStateChange(playerid, newstate, oldstate)
  472. {
  473.     return 1
  474. }
  475.  
  476. public OnPlayerEnterCheckpoint(playerid)
  477. {
  478.     return 1
  479. }
  480.  
  481. public OnPlayerLeaveCheckpoint(playerid)
  482. {
  483.     return 1
  484. }
  485.  
  486. public OnPlayerEnterRaceCheckpoint(playerid)
  487. {
  488.     return 1
  489. }
  490.  
  491. public OnPlayerLeaveRaceCheckpoint(playerid)
  492. {
  493.     return 1
  494. }
  495.  
  496. public OnRconCommand(cmd[])
  497. {
  498.     if(!strcmp(cmd, "debug_db_server"))
  499.     {
  500.         printf "%s, %s, %s", GetFieldData("server", "name"), GetFieldData("server", "owner"), GetFieldData("server", "version")
  501.     }
  502.     return 1
  503. }
  504.  
  505. public OnPlayerRequestSpawn(playerid)
  506. {
  507.     return 1
  508. }
  509.  
  510. public OnObjectMoved(objectid)
  511. {
  512.     return 1
  513. }
  514.  
  515. public OnPlayerObjectMoved(playerid, objectid)
  516. {
  517.     return 1
  518. }
  519.  
  520. public OnPlayerPickUpPickup(playerid, pickupid)
  521. {
  522.     return 1
  523. }
  524.  
  525. public OnVehicleMod(playerid, vehicleid, componentid)
  526. {
  527.     return 1
  528. }
  529.  
  530. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  531. {
  532.     return 1
  533. }
  534.  
  535. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  536. {
  537.     return 1
  538. }
  539.  
  540. public OnPlayerSelectedMenuRow(playerid, row)
  541. {
  542.     return 1
  543. }
  544.  
  545. public OnPlayerExitedMenu(playerid)
  546. {
  547.     return 1
  548. }
  549.  
  550. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  551. {
  552.     return 1
  553. }
  554.  
  555. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  556. {
  557.     return 1
  558. }
  559.  
  560. public OnRconLoginAttempt(ip[], password[], success)
  561. {
  562.     return 1
  563. }
  564.  
  565. public OnPlayerUpdate(playerid)
  566. {
  567.     return 1
  568. }
  569.  
  570. public OnPlayerStreamIn(playerid, forplayerid)
  571. {
  572.     return 1
  573. }
  574.  
  575. public OnPlayerStreamOut(playerid, forplayerid)
  576. {
  577.     return 1
  578. }
  579.  
  580. public OnVehicleStreamIn(vehicleid, forplayerid)
  581. {
  582.     return 1
  583. }
  584.  
  585. public OnVehicleStreamOut(vehicleid, forplayerid)
  586. {
  587.     return 1
  588. }
  589.  
  590. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  591. {
  592.     switch(dialogid)
  593.     {
  594.         case DIALOG_LOGIN:
  595.         {
  596.             if(response == 0)
  597.                 Kick playerid
  598.             if(!strcmp(inputtext, GetPlayerData(playerid, "password")))
  599.             {
  600.                 ShowPlayerDialog playerid, DIALOG_OKAY, DIALOG_STYLE_MSGBOX, "Login", "Der Login wurde erfolgreich abgeschlossen", "Ok", "Abbrechen"
  601.                 GivePlayerMoney playerid, strval(GetPlayerData(playerid, "money"))
  602.             }
  603.             else
  604.                 Kick playerid
  605.         }
  606.         case DIALOG_REGISTER:
  607.         {
  608.             if(response == 0)
  609.                 Kick playerid
  610.             RegisterPlayer playerid, inputtext
  611.         }
  612.         case DIALOG_INVENTAR:
  613.         {
  614.             // Inventar -> 1 = Handfunkgerät
  615.             switch(listitem)
  616.             {
  617.                 case 0:
  618.                 {
  619.                     ShowPlayerDialog(playerid, DIALOG_IOBJECT, DIALOG_STYLE_MSGBOX,
  620.                     "Handfunkgerät", "Mit diesem Gerät kannst du über weite Distanzen mit anderen kommunizieren.", "Ok", "Cancel");
  621.                 }
  622.             }
  623.         }
  624.         case DIALOG_SOPTIONS:
  625.         {
  626.             if(response)
  627.             {
  628.                 switch(listitem)
  629.                 {
  630.                     case 0:
  631.                     {
  632.                         // Dialog Staat
  633.                         ShowPlayerDialog playerid, DIALOG_STATE_LIST, DIALOG_STYLE_LIST, "Spieler Staat", "San Fierro\nLos Santos\nLas Venturas\nWüste\nAngel Pine", "Ok", "Cancel"
  634.                     }
  635.                     case 1:
  636.                     {
  637.                         // Kick
  638.                         Kick supportSelect[playerid]
  639.                     }
  640.                 }
  641.             }
  642.         }
  643.         case DIALOG_STATE_LIST:
  644.         {
  645.             if(response)
  646.             {
  647.                 switch(listitem)
  648.                 {
  649.                     case 0:
  650.                     {
  651.                         // San Fierro
  652.                         UpdatePlayerData supportSelect[playerid], "state", "sf"
  653.                     }
  654.                     case 1:
  655.                     {
  656.                         // Los Santos
  657.                         UpdatePlayerData supportSelect[playerid], "state", "ls"
  658.                     }
  659.                     case 2:
  660.                     {
  661.                         // Las Venturas
  662.                         UpdatePlayerData supportSelect[playerid], "state", "lv"
  663.                     }
  664.                     case 3:
  665.                     {
  666.                         // Wüste
  667.                         UpdatePlayerData supportSelect[playerid], "state", "ws"
  668.                     }
  669.                     case 4:
  670.                     {
  671.                         // Angel Pine
  672.                         UpdatePlayerData supportSelect[playerid], "state", "ap"
  673.                     }
  674.                 }
  675.             }
  676.         }
  677.     }
  678.     return 1;
  679. }
  680.  
  681. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  682. {
  683.     new msg[64]
  684.     if(source == 0)
  685.     {
  686.         if(supportModus[playerid])
  687.         {
  688.             supportSelect[playerid] = clickedplayerid
  689.             GetPlayerName playerid, msg, sizeof msg
  690.             format msg, sizeof msg, "Support - %s", msg
  691.             ShowPlayerDialog playerid, DIALOG_SOPTIONS, DIALOG_STYLE_LIST, msg, "Staat setzen\nKicken", "Ok", "Abbrechen"
  692.         }
  693.     }
  694.     return 1;
  695. }
  696.  
  697. // Timer
  698. public TutorialForPlayer(playerid)
  699. {
  700.     switch(TutorialStep[playerid])
  701.     {
  702.         case 1:
  703.         {
  704.             new msg[128]
  705.             format msg, sizeof msg, "Willkommen auf %s von %s", GetFieldData("server", "name"), GetFieldData("server", "owner")
  706.             SendClientMessage playerid, 0xFF0000AA, msg
  707.             SendClientMessage playerid, 0xFF0000AA, "------------------------"
  708.             SendClientMessage playerid, 0xFF0000AA, "Du erhälst nun deine Ausrüstung."
  709.             SendClientMessage playerid, 0xFF0000AA, "Mit /inventar kannst du diese ansehn."
  710.             SendClientMessage playerid, 0xFF0000AA, "Mit /help erfährst du etwas über die Benutzung der Gegenstände."
  711.             TutorialStep[playerid] = 2
  712.         }
  713.         case 2:
  714.         {
  715.             SendClientMessage playerid, 0xFF0000AA, "Du besitzt ein Einsteigerhandfunkgerät, mit welchen du auf Kanal 1 und 2 zugreifen kannst."
  716.             SendClientMessage playerid, 0xFF0000AA, "Es gibt noch mehr Kanäle, allerdings brauchst du dafür ein stärkeres Gerät."
  717.             SendClientMessage playerid, 0xFF0000AA, "Mit /hfg an aktivierst du es."
  718.             SendClientMessage playerid, 0xFF0000AA, "Mit /hfg channel [ID] wechselst du den Kanal."
  719.             SendClientMessage playerid, 0xFF0000AA, "Mit /hfg aus deaktivierst du es."
  720.             TutorialStep[playerid] = 3
  721.         }
  722.         case 3:
  723.         {
  724.             SendClientMessage playerid, 0xFF0000AA, "Außerdem kannst du dir aussuchen, in welchem Staat du leben möchtest."
  725.             SendClientMessage playerid, 0xFF0000AA, "Bitte lese deshalb im SA-MP.de Forum nach, welche Staaten es gibt."
  726.             SendClientMessage playerid, 0xFF0000AA, "Sobald du dich für einen Staat entschieden hast, kontaktiere einen SA-MP.de Admin"
  727.             SendClientMessage playerid, 0xFF0000AA, "oder SA-MP.de Supporter."
  728.             SendClientMessage playerid, 0xFF0000AA, "Viel Spaß auf dem SA-MP.de Server."
  729.             TutorialStep[playerid] = 0
  730.             KillTimer TutorialTimer[playerid]
  731.         }
  732.     }
  733. }
  734.  
  735. // use
  736. strget(strx[], pos, search = ' ')
  737. {
  738.     new arg, ret[128], idxx
  739.     for (new i = 0; i < strlen(strx); i++)
  740.     {
  741.         if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10)
  742.         {
  743.             arg++
  744.             if (arg == pos + 1)
  745.             {
  746.                 ret[i-idxx] = EOS
  747.                 return ret
  748.             }
  749.             else if (arg == pos)
  750.                 idxx = i+1
  751.         }
  752.         else if (arg == pos)
  753.                 ret[i - idxx] = strx[i]
  754.     }
  755.     return ret
  756. }
  757.  
  758. // DB
  759.  
  760. GetPlayerData(playerid, field[])
  761. {
  762.     new msg[256], DBResult:hndl_player
  763.     GetPlayerName playerid, msg, sizeof msg
  764.     format msg, sizeof msg, "SELECT * FROM player WHERE name = '%s'",
  765.                             msg
  766.     hndl_player = db_query(HandleGlobal, msg)
  767.     msg = ""
  768.     db_get_field_assoc hndl_player, field, msg, sizeof msg
  769.     db_free_result hndl_player
  770.     return msg
  771. }
  772.  
  773. UpdatePlayerData(playerid, field[], data[])
  774. {
  775.     new msg[256]
  776.     GetPlayerName playerid, msg, sizeof msg
  777.     format msg, sizeof msg, "UPDATE player SET %s = '%s' WHERE name = '%s'", field, data, msg
  778.     db_query HandleGlobal, msg
  779. }
  780.  
  781. UpdateFieldData(const from[], field[], data[])
  782. {
  783.     new msg[256]
  784.     format msg, sizeof msg, "UPDATE %s SET %s = '%s'", from, field, data
  785.     db_query HandleGlobal, msg
  786. }
  787.  
  788. UpdateFieldDataWhere(const from[], field[], data[], where[], value[])
  789. {
  790.     new msg[256]
  791.     format msg, sizeof msg, "UPDATE %s SET %s = '%s' WHERE %s = '%s'", from, field, data, where, value
  792.     db_query HandleGlobal, msg
  793. }
  794.  
  795. GetFieldData(const from[], field[])
  796. {
  797.     new msg[256], DBResult:hndl
  798.     format msg, sizeof msg, "SELECT * FROM %s", from
  799.     hndl = db_query(HandleGlobal, msg)
  800.     msg = ""
  801.     db_get_field_assoc hndl, field, msg, sizeof msg
  802.     return msg
  803. }
  804.  
  805. ExistPlayer(playerid)
  806. {
  807.     new msg[256], DBResult:hndl_player
  808.     GetPlayerName playerid, msg, sizeof msg
  809.     format msg, sizeof msg, "SELECT * FROM player WHERE name = '%s'",
  810.                             msg
  811.     hndl_player = db_query(HandleGlobal, msg)
  812.     return db_num_rows(hndl_player) ? 1 : 0
  813. }
  814.  
  815. RegisterPlayer(playerid, password[])
  816. {
  817.     new msg[256]
  818.     GetPlayerName playerid, msg, sizeof msg
  819.     format msg, sizeof msg, "INSERT INTO player(name, password, health, x, y, z, missions, admin, hfg, money, state, pint, job)\
  820.                             VALUES ('%s', '%s', 0.0, 0, 0, 0, '0:0:0:0', 0, 0, '0', 'lc', '0', 'none')", msg,
  821.                             password
  822.     db_query HandleGlobal, msg
  823.     // Zeige Tutorial
  824.     TutorialStep[playerid] = 1
  825.     TutorialTimer[playerid] = SetTimerEx("TutorialForPlayer", 6000, 1, "i", playerid)
  826. }
  827.  
  828. CheckInstall()
  829. {
  830.     return fexist("00_samp")
  831. }
  832.  
  833. Install()
  834. {
  835.     new File:f = fopen("00_samp", io_write)
  836.     fclose f
  837.     print "Installiere SA-MP.de Datenbank..."
  838.     db_query HandleGlobal, "CREATE TABLE player('name', 'password', 'health', 'x', 'y', 'z', 'pint', 'missions', 'admin', 'hfg', 'money', 'state', 'job')"
  839.     db_query HandleGlobal, "CREATE TABLE server('name', 'owner', 'version')"
  840.     db_query HandleGlobal, "INSERT INTO server(name, owner, version) VALUES('SA-MP.de RP Server', 'DMA', '0.0.1 T1')"
  841.     print "Die Datenbank wurde installiert..."
  842. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement