Advertisement
Guest User

Untitled

a guest
Nov 5th, 2015
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 71.58 KB | None | 0 0
  1. _G["Clantag"] = "no"
  2. setGlitchEnabled ( "fastsprint", true )
  3. clanMembers = {}
  4. ticketPermitted = {}
  5. local vals = {}
  6.     vals[1] = "Water"
  7.     vals[2] = "Bloom"
  8.     vals[3] = "Carpaint"
  9.     vals[4] = "Roadshine"
  10. function banCheck ( nick, ip, uname, serial )
  11.     bool = false
  12.     connectCanceled = false
  13.     local i, j = string.find ( nick, "mtasa" )
  14.     if nick ~= MySQL_Save ( nick ) then
  15.         cancelEvent ( true, "Dein Nickname enthaelt unnoetige Zeichen" )
  16.         connectCanceled = true
  17.     elseif nick == "Player" then
  18.         cancelEvent ( true, "Bitte waehle einen Nickname ( Unter \"Settings\" )" )
  19.         connectCanceled = true
  20.     elseif i and j then
  21.         cancelEvent ( true, "Fuck you!" )
  22.         connectCanceled = true
  23.     else
  24.         local bantime = tonumber ( MySQL_GetString ( "ban", "STime", "Name LIKE '"..nick.."'" ) )
  25.         if bantime then
  26.             bool = not ( bantime == 0 )
  27.         end
  28.         if bool and bantime then
  29.             if ( bantime - getTBanSecTime ( 0 ) ) < 0 then
  30.                 MySQL_DelRow ( "ban", "Name LIKE '"..nick.."'")
  31.             elseif bantime > 0 then
  32.                 local reason = MySQL_GetString ( "ban", "Grund", "Name LIKE '"..nick.."'" )
  33.                 local admin = MySQL_GetString ( "ban", "Admin", "Name LIKE '"..nick.."'" )
  34.                 local diff = math.floor ( ( ( bantime - getTBanSecTime ( 0 ) ) / 60 ) * 100 ) / 100
  35.                 cancelEvent ( true, "Du bist noch "..diff.." Stunden von "..admin.." gesperrt, Grund: "..reason )
  36.                 connectCanceled = true
  37.             end
  38.         else
  39.             -- IP-Ban deaktiviert --
  40.             local ipBanned = false--MySQL_GetString ( "ban", "Grund", "IP LIKE '" ..ip.."'" )
  41.             -- IP-Ban deaktiviert --
  42.             local ip1 = tostring ( gettok ( ip, 1, string.byte('.') ) )
  43.             local ip2 = tostring ( gettok ( ip, 2, string.byte('.') ) )
  44.             local ipRangeBanned = MySQL_GetString ( "ban", "Grund", "IP LIKE '"..ip1.."."..ip2..".*.*'" )
  45.             local nickBanned = MySQL_GetString("ban", "Name", "Name LIKE '" ..nick.."'" )
  46.             if ipBanned then
  47.                 local reason = MySQL_GetString ( "ban", "Grund", "IP LIKE '" ..ip.."'" )
  48.                 local admin = MySQL_GetString ( "ban", "Admin", "IP LIKE '" ..ip.."'" )
  49.                 cancelEvent ( true, "Du bist von "..admin.." gebannt worden! Grund: "..reason..", bei Fragen wende dich bitte an das Forum!" )
  50.                 connectCanceled = true
  51.             elseif ipRangeBanned then
  52.                 cancelEvent ( true, "#409: Bad socket!" )
  53.             elseif nickBanned then
  54.                 local reason = MySQL_GetString ( "ban", "Grund", "Name LIKE '" ..nick.."'" )
  55.                 local admin = MySQL_GetString ( "ban", "Admin", "Name LIKE '" ..nick.."'" )
  56.                 cancelEvent ( true, "Du bist von "..admin.." gebannt worden! Grund: "..reason..", bei Fragen wende dich bitte an das Forum!" )
  57.                 connectCanceled = true
  58.             elseif getPlayerWarnCount ( nick ) >= 3 then
  59.                 cancelEvent ( true, "Du hast 3 Warns! Ablaufdatum des nächsten Warns: "..getLowestWarnExtensionTime ( nick ) )
  60.                 connectCanceled = true
  61.             else
  62.                 local serialBanned = MySQL_GetString ( "ban", "Grund", "Serial LIKE '%"..serial.."%'" )
  63.                 if serialBanned then
  64.                     local reason = MySQL_GetString ( "ban", "Grund", "Serial LIKE '"..serial.."'" )
  65.                     local admin = MySQL_GetString ( "ban", "Admin", "Serial LIKE '"..serial.."'" )
  66.                     cancelEvent ( true, "Du bist von "..admin.." gebannt worden! Grund: "..reason..", bei Fragen wende dich bitte an das Forum!" )
  67.                     connectCanceled = true
  68.                 end
  69.             end
  70.         end
  71.     end
  72.     if not connectCanceled then
  73.         insertPlayerIntoLoggedIn ( nick, ip, serial )
  74.     end
  75. end
  76. addEventHandler ( "onPlayerConnect", getRootElement(), banCheck )
  77. function regcheck_func ( player )
  78.     setPedStat ( player, 22, 50 )
  79.     setElementFrozen ( player, true )
  80.     vioSetElementData  ( player, "loggedin", 0 )
  81.     vioSetElementData ( player, "pwfailed", 0 )
  82.     pname = getPlayerName ( player )
  83.     toggleAllControls ( player, false )
  84.     if player == client then
  85.         if isSerialValid ( getPlayerSerial(player) ) or isRegistered ( pname ) then
  86.             if hasInvalidChar ( player ) and not isRegistered ( pname ) then
  87.                 kickPlayer ( player, "Dein Name enthält ungültige Zeichen!" )
  88.             else
  89.                 if pname ~= "player" then
  90.                     if isRegistered ( pname ) then
  91.                         local serial = getPlayerSerial ( player )
  92.                         local thename = ""
  93.                         if MySQL_DatasetExist ( "players", "Serial LIKE '"..serial.."'" ) then
  94.                             thename = MySQL_GetString ( "players", "Name", "Serial LIKE '"..serial.."'" )
  95.                         else
  96.                             thename = pname
  97.                         end
  98.                         if string.lower(thename) ~= string.lower(getPlayerName ( player )) then
  99.                             kickPlayer ( player, "Du hast schon ein Account mit einem anderen Namen ("..thename..")" )
  100.                             return false
  101.                         end
  102.                         if MySQL_GetString ( "players", "Passwort", "Name LIKE '"..thename.."'" ) == "-" then
  103.                             triggerClientEvent ( player, "ShowLoginWindow", getRootElement(), thename, false )
  104.                         else
  105.                             triggerClientEvent ( player, "ShowLoginWindow", getRootElement(), thename, true )
  106.                         end
  107.                     else
  108.                         local clantag = gettok ( pname, 1, string.byte(']') )
  109.                         if testmode == true then
  110.                             triggerClientEvent ( player, "ShowRegisterGui", getRootElement() )
  111.                         else
  112.                             local serial = getPlayerSerial ( player )
  113.                             local count =  tonumber ( MySQL_ExistAmount ( "players", "`Serial` LIKE '"..serial.."'" ) )
  114.                             if string.upper ( clantag ) == "[RISE" and not isThisTheBetaServer () then
  115.                                 kickPlayer (player, "Du bist kein Mitglied des Clans!")
  116.                             elseif string.upper ( clantag ) == "[NOVA" or string.upper ( clantag ) == "[VIO" or string.upper ( clantag ) == "[EXO" or string.upper ( clantag ) == "[XTM" or string.upper ( clantag ) == "[GRS" or string.upper ( clantag ) == "[VITA" then
  117.                                 kickPlayer (player, "Dieses Clantag ist nicht erlaubt!")
  118.                             elseif #pname < 3 or #pname > 20 then
  119.                                 kickPlayer ( player, "Bitte mindestens 3 und maximal 20 Zeichen als Nickname!" )
  120.                             elseif hasInvalidChar ( player ) then
  121.                                 kickPlayer ( player, "Bitte nimm einen Nickname ohne ueberfluessige Zeichen!" )
  122.                             elseif count > 0 then
  123.                                 local thefkname = MySQL_GetString ( "players", "Name", "`Serial` LIKE '"..serial.."'" )
  124.                                 kickPlayer ( player, "Du hast schon ein Account mit der Serial ("..thefkname..")!" )
  125.                             elseif string.lower (pname) == "niemand" or string.lower (pname) == "versteigerung" or string.lower (pname) == "none" then
  126.                                 kickPlayer ( player, "Ungültiger Name!" )
  127.                             else
  128.                                 triggerClientEvent ( player, "ShowRegisterGui", getRootElement() )
  129.                             end
  130.                         end
  131.                     end
  132.                 else
  133.                     kickPlayer ( player, "Bitte ändere deinen Nickname!" )
  134.                 end
  135.             end
  136.         else
  137.             kickPlayer ( player, "Dein MTA verwendet einen ungültigen Serial. Bitte neu installieren!" )
  138.         end
  139.     end
  140. end
  141. addEvent ( "regcheck", true )
  142. addEventHandler ("regcheck", getRootElement(), regcheck_func )
  143. function getIDByName ( pname )
  144.     return tonumber ( MySQL_GetString ( "players", "id", "Name LIKE '"..pname.."'" ) )
  145. end
  146. function register_func ( player, passwort, bday, bmon, byear, geschlecht )
  147.     if player == client then
  148.         local pname = MySQL_Save ( getPlayerName ( player ) )
  149.         if passwort == MySQL_Save ( passwort ) then
  150.             passwort = MySQL_Save ( passwort )
  151.             bday = MySQL_Save ( bday )
  152.             bmon = MySQL_Save ( bmon )
  153.             byear = MySQL_Save ( byear )
  154.             geschlecht = MySQL_Save ( geschlecht )
  155.             if vioGetElementData ( player, "loggedin" ) == 0 and not isRegistered ( pname ) and player == client then
  156.                 setPlayerLoggedIn ( pname )
  157.                 mysql_vio_query ( "DELETE FROM achievments WHERE Name = '"..pname.."'" )
  158.                 mysql_vio_query ( "DELETE FROM bonustable WHERE Name = '"..pname.."'" )
  159.                 mysql_vio_query ( "DELETE FROM inventar WHERE Name = '"..pname.."'" )
  160.                 mysql_vio_query ( "DELETE FROM packages WHERE Name = '"..pname.."'" )
  161.                 mysql_vio_query ( "DELETE FROM players WHERE Name = '"..pname.."'" )
  162.                 mysql_vio_query ( "DELETE FROM skills WHERE Name = '"..pname.."'" )
  163.                 mysql_vio_query ( "DELETE FROM userdata WHERE Name = '"..pname.."'" )
  164.                 toggleAllControls ( player, true )
  165.                 vioSetElementData ( player, "loggedin", 1 )
  166.                 triggerClientEvent ( source, "DisableRegisterGui", getRootElement() )
  167.                 local ip = getPlayerIP ( player )
  168.                 if geschlecht == nil then
  169.                     geschlecht = 1
  170.                 end
  171.                 local regtime = getRealTime()
  172.                 local year = regtime.year + 1900
  173.                 local month = regtime.month
  174.                 local day = regtime.monthday
  175.                 local hour = regtime.hour
  176.                 local minute = regtime.minute
  177.                 local registerdatum = tostring(day.."."..month.."."..year..", "..hour..":"..minute)
  178.                 local lastlogin = registerdatum
  179.                 local passwort = md5 ( passwort )
  180.                 local lastLoginInt = getSecTime ( 0 )
  181.                 local id = MySQL_GetString ( "idcounter", "id", "id = id" )
  182.                 mysql_vio_query ( "UPDATE idcounter SET id = id + 1" )
  183.                 local result = mysql_query(handler, "INSERT INTO players ( id, Name, Serial, IP, Last_login, Geburtsdatum_Tag, Geburtsdatum_Monat, Geburtsdatum_Jahr, Passwort, Geschlecht, RegisterDatum, LastLogin) VALUES ( '"..id.."', '"..pname.."', '"..getPlayerSerial(player).."', '"..getPlayerIP ( player ).."', '"..lastlogin.."', "..tonumber ( bday)..", "..tonumber ( bmon)..", "..tonumber ( byear)..", '"..passwort.."', '"..geschlecht.."', '"..registerdatum.."', '"..lastLoginInt.."' )")
  184.                 if( not result) then
  185.                     outputDebugString("Error executing the query: ("        .. mysql_errno(handler) .. ") " .. mysql_error(handler))
  186.                 else
  187.                     mysql_free_result(result)
  188.                     triggerClientEvent ( player, "infobox_start", getRootElement(), "Du hast dich\nerfolgreich registriert!\n\nDeine Daten werden\nnun gespeichert!", 7500, 0, 255, 0 )
  189.                 end
  190.                 local result = mysql_query(handler, "INSERT INTO achievments (Name) VALUES ('"..pname.."')")
  191.                 if( not result) then
  192.                     outputDebugString("Error executing the query: ("        .. mysql_errno(handler) .. ") " .. mysql_error(handler))
  193.                 else
  194.                     mysql_free_result(result)
  195.                 end
  196.                 local result = mysql_query(handler, "INSERT INTO inventar (Name) VALUES ('"..pname.."')")
  197.                 if( not result) then
  198.                     outputDebugString("Error executing the query: ("        .. mysql_errno(handler) .. ") " .. mysql_error(handler))
  199.                 else
  200.                     mysql_free_result(result)
  201.                 end
  202.                 local result = mysql_query(handler, "INSERT INTO packages (Name, Paket1, Paket2, Paket3, Paket4, Paket5, Paket6, Paket7, Paket8, Paket9, Paket10, Paket11, Paket12, Paket13, Paket14, Paket15, Paket16, Paket17, Paket18, Paket19, Paket20, Paket21, Paket22, Paket23, Paket24, Paket25) VALUES ('"..pname.."','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0' )")
  203.                 if( not result) then
  204.                     outputDebugString("Error executing the query: ("        .. mysql_errno(handler) .. ") " .. mysql_error(handler))
  205.                 else
  206.                     mysql_free_result(result)
  207.                 end
  208.                 local result = mysql_query(handler, "INSERT INTO bonustable (Name, Lungenvolumen, Muskeln, Kondition, Boxen, KungFu, Streetfighting, CurStyle, PistolenSkill, DeagleSkill, ShotgunSkill, AssaultSkill) VALUES ('"..pname.."', 'none', 'none', 'none', 'none', 'none', 'none', '4', 'none', 'none', 'none', 'none' )")
  209.                 if( not result) then
  210.                     outputDebugString("Error executing the query: ("        .. mysql_errno(handler) .. ") " .. mysql_error(handler))
  211.                 else
  212.                     mysql_free_result(result)
  213.                 end
  214.                 mysql_vio_query ( "INSERT INTO skills ( id, Name ) VALUES ( '"..getIDByName ( pname ).."', '"..pname.."' )" )
  215.                 local Geld = 15000
  216.                 vioSetElementData ( player, "money", Geld )
  217.                 givePlayerMoney ( player, Geld )
  218.                 local Punkte = 0
  219.                 vioSetElementData ( player, "points", Punkte )
  220.                 local Paeckchen = "90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
  221.                 vioSetElementData ( player, "packages", Paeckchen )
  222.                 local Spawnpos_X = -1969.730
  223.                 vioSetElementData ( player, "spawnpos_x", Spawnpos_X )
  224.                 local Spawnpos_Y = 116.0128
  225.                 vioSetElementData ( player, "spawnpos_y", Spawnpos_Y )
  226.                 local Spawnpos_Z = 28
  227.                 vioSetElementData ( player, "spawnpos_z", Spawnpos_Z )
  228.                 local Spawnrot_X = 0
  229.                 vioSetElementData ( player, "spawnrot_x", Spawnrot_X )
  230.                 local SpawnInterior = 0
  231.                 vioSetElementData ( player, "spawnint", SpawnInterior )
  232.                 local SpawnDimension = 0
  233.                 vioSetElementData ( player, "spawndim", SpawnDimension )
  234.                 local Fraktion = 0
  235.                 vioSetElementData ( player, "fraktion", Fraktion )
  236.                 local FraktionsRang = 0
  237.                 vioSetElementData ( player, "rang", FraktionsRang )
  238.                 local Adminlevel = 0
  239.                 vioSetElementData ( player, "adminlvl", Adminlevel )
  240.                 local Spielzeit = 0
  241.                 vioSetElementData ( player, "playingtime", Spielzeit )
  242.                 local CurrentCars = 0
  243.                 vioSetElementData ( player, "curcars", CurrentCars )
  244.                 local Maximumcars = 5
  245.                 vioSetElementData ( player, "maxcars", Maximumcars )
  246.                 local Carslot1 = 0
  247.                 vioSetElementData ( player, "carslot1", Carslot1 )
  248.                 local Carslot2 = 0
  249.                 vioSetElementData ( player, "carslot2", Carslot2 )
  250.                 local Carslot3 = 0
  251.                 vioSetElementData ( player, "carslot3", Carslot3 )
  252.                 local Carslot4 = 0
  253.                 vioSetElementData ( player, "carslot4", Carslot4 )
  254.                 local Carslot5 = 0
  255.                 vioSetElementData ( player, "carslot5", Carslot5 )
  256.                 local Carslot6 = 0
  257.                 vioSetElementData ( player, "carslot6", Carslot6 )
  258.                 local Carslot7 = 0
  259.                 vioSetElementData ( player, "carslot7", Carslot7 )
  260.                 local Carslot8 = 0
  261.                 vioSetElementData ( player, "carslot8", Carslot8 )
  262.                 local Carslot9 = 0
  263.                 vioSetElementData ( player, "carslot9", Carslot9 )
  264.                 local Carslot10 = 0
  265.                 vioSetElementData ( player, "carslot10", Carslot10 )
  266.                 local Carslot11 = 0
  267.                 vioSetElementData ( player, "carslot11", Carslot11 )
  268.                 local Carslot12 = 0
  269.                 vioSetElementData ( player, "carslot12", Carslot12 )
  270.                 local Carslot13 = 0
  271.                 vioSetElementData ( player, "carslot13", Carslot13 )
  272.                 local Carslot14 = 0
  273.                 vioSetElementData ( player, "carslot14", Carslot14 )
  274.                 local Carslot15 = 0
  275.                 vioSetElementData ( player, "carslot15", Carslot15 )
  276.                 local Carslot16 = 0
  277.                 vioSetElementData ( player, "carslot16", Carslot16 )
  278.                 local Carslot17 = 0
  279.                 vioSetElementData ( player, "carslot17", Carslot17 )
  280.                 local Carslot18 = 0
  281.                 vioSetElementData ( player, "carslot18", Carslot18 )
  282.                 local Carslot19 = 0
  283.                 vioSetElementData ( player, "carslot19", Carslot19 )
  284.                 local Carslot20 = 0
  285.                 vioSetElementData ( player, "carslot20", Carslot20 )
  286.                 local Tode = 0
  287.                 vioSetElementData ( player, "deaths", Tode )
  288.                 local Kills = 0
  289.                 vioSetElementData ( player, "kills", Kills )
  290.                 local Knastzeit = 0
  291.                 vioSetElementData ( player, "jailtime", Knastzeit )
  292.                 local Prisonzeit = 0
  293.                 vioSetElementData ( player, "prison", Prisonzeit )
  294.                 local Hoellenzeit = 0
  295.                 vioSetElementData ( player, "helltime", Hoellenzeit )
  296.                 local Himmelszeit = 0
  297.                 vioSetElementData ( player, "heaventime", Himmelszeit )
  298.                 local Hausschluessel = 0
  299.                 vioSetElementData ( player, "housekey", 0 )
  300.                 local Bizschluessel = 0
  301.                 vioSetElementData ( player, "bizkey", Bizschluessel )
  302.                 local Bankgeld = 35000
  303.                 vioSetElementData ( player, "bankmoney", Bankgeld )
  304.                 local Drogen  = 0
  305.                 vioSetElementData ( player, "drugs", Drogen )
  306.                 local Buslevel  = 0
  307.                 vioSetElementData ( player, "buslevel", Buslevel )
  308.                 if geschlecht == 1 then
  309.                     local rnd = math.random ( 1, 1 )
  310.                     Skinid = femalehomeless[rnd]
  311.                     vioSetElementData ( player, "skinid", Skinid )
  312.                 else
  313.                     local rnd = math.random ( 1, 5 )
  314.                     Skinid = malehomeless[rnd]
  315.                     vioSetElementData ( player, "skinid", Skinid )
  316.                 end
  317.                 local Autofuehrerschein = 0
  318.                 vioSetElementData ( player, "carlicense", Autofuehrerschein )
  319.                 local Motorradtfuehrerschein = 0
  320.                 vioSetElementData ( player, "bikelicense", Motorradtfuehrerschein )
  321.                 local LKWfuehrerschein = 0
  322.                 vioSetElementData ( player, "lkwlicense", LKWfuehrerschein )
  323.                 local Helikopterfuehrerschein = 0
  324.                 vioSetElementData ( player, "helilicense", Helikopterfuehrerschein )
  325.                 local FlugscheinKlasseA = 0
  326.                 vioSetElementData ( player, "planelicensea", FlugscheinKlasseA )
  327.                 local FlugscheinKlasseB = 0
  328.                 vioSetElementData ( player, "planelicenseb", FlugscheinKlasseB )
  329.                 local Motorbootschein = 0
  330.                 vioSetElementData ( player, "motorbootlicense", Motorbootschein )
  331.                 local Segelschein = 0
  332.                 vioSetElementData ( player, "segellicense", Segelschein)
  333.                 local Angelschein = 0
  334.                 vioSetElementData ( player, "fishinglicense", Angelschein)
  335.                 local Wanteds = 0
  336.                 vioSetElementData ( player, "wanteds", Wanteds )
  337.                 local StvoPunkte = 0
  338.                 vioSetElementData ( player, "stvo_punkte", StvoPunkte )
  339.                 local Waffenschein = 0
  340.                 vioSetElementData ( player, "gunlicense", Waffenschein )
  341.                 local Perso = 0
  342.                 vioSetElementData ( player, "perso", Perso )
  343.                 local IncomePayday = 0
  344.                 vioSetElementData ( player, "incomepayday", IncomePayday )
  345.                 local Boni = 1000
  346.                 vioSetElementData ( player, "boni", Boni )
  347.                 local PdayIncome = 0
  348.                 vioSetElementData ( player, "pdayincome", PdayIncome )
  349.                 local PdayKosten = 0
  350.                 vioSetElementData ( player, "pdaykosten", PdayKosten )
  351.                 local Hitglocke = 0
  352.                 vioSetElementData ( player, "hitglocke", Hitglocke )
  353.                 local Medikits = 0
  354.                 vioSetElementData ( player, "medikits", Medikits )
  355.                 local Repairkits = 0
  356.                 vioSetElementData ( player, "repairkits", Repairkits )
  357.                 local RadarAnzeige = 1
  358.                 vioSetElementData ( player, "radaranzeige", RadarAnzeige )
  359.                 run = 1
  360.                 while true do
  361.                     if run >= 20 then
  362.                         break
  363.                     else
  364.                         run = run + 1
  365.                     end
  366.                     local tnr = math.random ( 1000, 9999999 )
  367.                     local result = MySQL_GetString( "userdata", "Telefonnr", "Telefonnr LIKE '"..tnr.."'" )
  368.                     if not result then
  369.                         if tonumber ( tnr ) ~= 911 and tonumber ( tnr ) ~= 333 and tonumber ( tnr ) ~= 400 and tonumber (tnr ) ~= 666666 then
  370.                             Telefonnr = tnr
  371.                             break
  372.                         end
  373.                     end
  374.                 end
  375.                 if Telefonnr == nil then
  376.                     Telefonnr = math.random ( 1000, 9999999 )
  377.                 end
  378.                 vioSetElementData ( player, "telenr", Telefonnr )
  379.                 local Warns = 0
  380.                 vioSetElementData ( player, "warns", Warns )
  381.                 local GunboxA = "0|0"
  382.                 vioSetElementData ( player, "gunboxa", GunboxA )
  383.                 local GunboxB = "0|0"
  384.                 vioSetElementData ( player, "gunboxb", GunboxB )
  385.                 local GunboxC = "0|0"
  386.                 vioSetElementData ( player, "gunboxc", GunboxC )
  387.                 local Job = "none"
  388.                 vioSetElementData ( player, "job", Job )
  389.                 local Jobtime = 0
  390.                 vioSetElementData ( player, "jobtime", Jobtime )
  391.                 local Club = "none"
  392.                 vioSetElementData ( player, "club", Club )
  393.                 local FavChannel = 0
  394.                 vioSetElementData ( player, "favchannel", FavChannel )
  395.                 local BonusPunkte = 0
  396.                 vioSetElementData ( player, "bonuspoints", BonusPunkte )
  397.                 local Truckerskill = 1
  398.                 vioSetElementData ( player, "truckerlvl", Truckerskill )
  399.                 local Airportskill = 1
  400.                 vioSetElementData ( player, "airportlvl", Airportskill )       
  401.                 local farmerLVL = 0
  402.                 vioSetElementData ( player, "farmerLVL", farmerLVL )
  403.                 local Contract = 0
  404.                 vioSetElementData ( player, "contract", Contract )
  405.                 local socialState = "Obdachloser"
  406.                 vioSetElementData ( player, "socialState", socialState )
  407.                 local streetCleanPoints = 0
  408.                 vioSetElementData ( player, "streetCleanPoints", streetCleanPoints )
  409.                 vioSetElementData ( player, "handyType", 1 )
  410.                 vioSetElementData ( player, "handyCosts", 0 )
  411.                 _G[pname.."paydaytime"] = setTimer ( playingtime, 60000, 1, player )
  412.                 vioSetElementData  ( player, "loggedin", 1 )
  413.                 vioSetElementData ( player, "muted", 0 )
  414.                 vioSetElementData ( player, "ElementClicked", false )
  415.                 vioSetElementData ( player, "curplayingtime", 999 )
  416.                 vioSetElementData ( player, "housex", 0 )
  417.                 vioSetElementData ( player, "housey", 0 )
  418.                 vioSetElementData ( player, "housez", 0 )
  419.                 vioSetElementData ( player, "house", "none" )
  420.                 vioSetElementData ( player, "handystate", "on" )
  421.                 vioSetElementData ( player, "object", 0 )
  422.                 vioSetElementData ( player, "ammoTyp", 0 )
  423.                 vioSetElementData ( player, "curAmmoTyp", 0 )
  424.                 vioSetElementData ( player, "nodmzone", 0 )
  425.                 bindKey ( source, "r", "down", reload )
  426.                 setElementFrozen ( player, true )
  427.                 setTimer ( setElementFrozen, 5000, 1, player, false )
  428.                 triggerClientEvent ( player, "sec_health_give", getRootElement(), 999 )
  429.                 spawnPlayer ( player, vioGetElementData ( player, "spawnpos_z" ), vioGetElementData ( player, "spawnpos_y" ), vioGetElementData ( player, "spawnpos_z" ), vioGetElementData ( player, "spawnrot_x" ), vioGetElementData ( player, "spawnint" ), vioGetElementData ( player, "spawndim" ) )
  430.                 triggerClientEvent ( player, "sec_health_give", getRootElement(), 999 )
  431.                 triggerClientEvent ( player, "aktualisiereMemberTabelle", player, fraktionMembersOffOn, zeitTable )
  432.                 --fadeCamera ( player, true )
  433.                 --setCameraTarget( player, player )
  434.                 setPlayerWantedLevel ( player, Wanteds )
  435.                 packageLoad ( player )
  436.                 achievload ( player )
  437.                 inventoryload ( player )
  438.                 elementDataSettings ( player )
  439.                 bonusLoad ( player )
  440.                 skillDataLoad ( player )
  441.                 local result = mysql_query(handler, "INSERT INTO userdata ( Name,Skinid,Telefonnr) VALUES('"..pname.."', '"..vioGetElementData ( player, "skinid" ).."', '"..Telefonnr.."')")
  442.                 if( not result) then
  443.                     outputDebugString("Error executing the query: ("        .. mysql_errno(handler) .. ") " .. mysql_error(handler))
  444.                 else
  445.                     mysql_free_result(result)
  446.                     outputDebugString ("Daten fuer Spieler "..pname.." wurden angelegt!")
  447.                 end
  448.                 outputChatBox ( "Drücke F1, um das Hilfemenue zu öffnen!", player, 200, 200, 0 )
  449.                 vioSetElementData ( player, "gameboy", 0 )
  450.                 loadAddictionsForPlayer ( player )
  451.                 setCameraInterior ( player, 0 )
  452.                 setCameraTarget ( player, player )
  453.                 -- Tutorial --
  454.                 --triggerClientEvent ( player, "setPlayerInTutorial", player )
  455.                 --startintro_func ( player )
  456.                 setElementPosition ( player, Spawnpos_X, Spawnpos_X, Spawnpos_Z )
  457.                 triggerEvent ( "onVioPlayerLogin", player )
  458.                 outputChatBox ( "Willkommen auf Rise Reallife.", player, 255, 255, 255 )
  459.                 outputChatBox ( "Wir sind zur Zeit in der Beta- / Entwicklungsphase.", player, 255, 255, 255 )
  460.                 outputChatBox ( "Daher können einige Bugs auftreten und das Script nicht vollkommen erscheinen.", player, 255, 255, 255 )
  461.                 outputChatBox ( "Unser Scripter arbeitet hart am Server und versucht die Bugs zu fixen und die Wünsche der User zu berücksichtigen.", player, 255, 255, 255 )
  462.                 outputChatBox ( "Wenn du einen Vorschlag oder Bug gefunden hast, so poste den bitte auf www.risereallife, damit wir uns darum kümmern können.", player, 255, 255, 255 )
  463.                 outputChatBox ( "Übrigens: Mit \"B\" kannst du dein Hud verändern.", player, 255, 255, 255 )
  464.             end
  465.         else
  466.             outputChatBox ( "Dein Passwort enthaelt ungueltige Sonderzeichen!", player, 125, 0, 0 )
  467.         end
  468.     end
  469. end
  470. addEvent ( "register", true )
  471. addEventHandler ( "register", getRootElement(), register_func)
  472. function gameBeginGuiShow_func ( player )
  473.     if player == client then
  474.         vioSetElementData ( player, "isInTut", false )
  475.         triggerClientEvent ( player, "showBeginGui", getRootElement() )
  476.         showCursor ( player, true )
  477.         vioSetElementData ( player, "ElementClicked", true )
  478.         toggleAllControls ( player, true )
  479.         setElementPosition ( player, -1421.3, -287.2, 13.8 )
  480.         setElementInterior ( player, 0 )
  481.     end
  482. end
  483. addEvent ( "gameBeginGuiShow", true )
  484. addEventHandler ( "gameBeginGuiShow", getRootElement(), gameBeginGuiShow_func)
  485. function login_func ( player, passwort, hatPWdrin )
  486.     if player == client then
  487.         if vioGetElementData ( player, "loggedin" ) == 0 then
  488.             local pname = MySQL_Save ( getPlayerName ( player ) )
  489.             local passwort = MySQL_Save ( passwort )
  490.             local result = MySQL_GetString("players", "Passwort", "Name LIKE '" ..pname.."'")
  491.             if ( not result ) then
  492.                 outputDebugString("Error executing the query: (" .. mysql_errno(handler) .. ") " .. mysql_error(handler))
  493.             else
  494.                 if result == md5(passwort) or not hatPWdrin then
  495.                     if not hatPWdrin then
  496.                         MySQL_SetString ("players", "Passwort", md5(passwort), "Name like '"..pname.."'")
  497.                     end
  498.                     local clantag = gettok ( pname, 1, string.byte(']') )
  499.                     --[[if string.lower ( clantag ) == "[".._G["Clantag"] then --or MySQL_ExistAmount ( "ticket_permitted", "name LIKE '"..pname.."'" ) > 0 then
  500.                         if string.lower ( clantag ) == "[".._G["Clantag"] then
  501.                             clanMembers[player] = pname
  502.                         end
  503.                         ticketPermitted[player] = pname
  504.                         outputChatBox ( "Du kannst ankommende Anfragen mit /tickets bearbeiten.", player, 125, 0, 0 )
  505.                     end
  506.                     if MySQL_DatasetExist ( "ticket_answeres", "name LIKE '"..pname.."'" ) then
  507.                         outputChatBox ( "Du hast eine Antwort auf deine Anfrage erhalten! Tippe /readticket, um sie zu lesen.", player, 0, 200, 0 )
  508.                     end]]
  509.                     setPlayerLoggedIn ( pname )
  510.                     toggleAllControls ( player, true )
  511.                     vioSetElementData ( player, "loggedin", 1 )
  512.                     vioSetElementData  ( player, "loggedin", 1 )
  513.                     vioSetElementData ( player, "nodmzone", 0 )
  514.                     local logtime = getRealTime()
  515.                     local year = logtime.year + 1900
  516.                     local month = logtime.month + 1
  517.                     local day = logtime.monthday
  518.                     local hour = logtime.hour
  519.                     local minute = logtime.minute
  520.                     local lastLoginInt = getSecTime ( 0 )
  521.                     local lastlogin = tostring(day.."."..month.."."..year..", "..hour..":"..minute)
  522.                     local result = mysql_query ( handler, "SELECT * from userdata WHERE Name LIKE '"..pname.."'" )
  523.                     if result then
  524.                         if ( mysql_num_rows ( result ) > 0 ) then
  525.                             dsatz = mysql_fetch_assoc ( result )
  526.                             mysql_free_result ( result )
  527.                         end
  528.                     end
  529.                     local money = tonumber ( dsatz["Geld"] )
  530.                     vioSetElementData ( player, "money", money )
  531.                     if money >= 0 then
  532.                         givePlayerMoney ( player, money )
  533.                     else
  534.                         takePlayerMoney ( player, money )
  535.                     end
  536.                     local fraktion = tonumber ( dsatz["Fraktion"] )
  537.                     vioSetElementData ( player, "fraktion", fraktion )
  538.                     if fraktion > 0 then
  539.                         fraktionMembers[fraktion][player] = fraktion
  540.                         bindKey ( player, "y", "down", "chatbox", "t" )
  541.                     end
  542.                     local rang = tonumber ( dsatz["FraktionsRang"] )
  543.                     vioSetElementData ( player, "rang", tonumber ( rang ) )
  544.                     if fraktion > 0 and fraktion < 10 then
  545.                         fraktionMembersOffOn[fraktion][getPlayerName(player)] = rang
  546.                         zeitTable[getPlayerName(player)] = dsatz ["LastFactionChange"]
  547.                     elseif fraktion == 10 or fraktion == 11 then
  548.                         fraktionMembersOffOn[10][getPlayerName(player)] = rang
  549.                         zeitTable[getPlayerName(player)] = dsatz ["LastFactionChange"]
  550.                     end
  551.                     local admnlvl = tonumber ( dsatz["Adminlevel"] )
  552.                     vioSetElementData ( player, "adminlvl", admnlvl )
  553.                     if admnlvl >= 1 then
  554.                         adminsIngame[player] = admnlvl
  555.                     end
  556.                     if admnlvl == 1 then
  557.                         donatorMute[player] = {}
  558.                     end
  559.                     vioSetElementData ( player, "spawnpos_x", dsatz["Spawnpos_X"] )
  560.                     vioSetElementData ( player, "spawnpos_y", dsatz["Spawnpos_Y"] )
  561.                     vioSetElementData ( player, "spawnpos_z", tonumber ( dsatz["Spawnpos_Z"] ) )
  562.                     vioSetElementData ( player, "spawnrot_x", tonumber ( dsatz["Spawnrot_X"] ) )
  563.                     vioSetElementData ( player, "spawnint", tonumber ( dsatz["SpawnInterior"] ) )
  564.                     vioSetElementData ( player, "spawndim", tonumber ( dsatz["SpawnDimension"] ) )
  565.                     vioSetElementData ( player, "playingtime", tonumber ( dsatz["Spielzeit"] ) )
  566.                     vioSetElementData ( player, "curcars", tonumber ( dsatz["CurrentCars"] ) )
  567.                     vioSetElementData ( player, "maxcars", tonumber ( dsatz["MaximumCars"] ) )
  568.                     curcars = 0
  569.                     local offerOnCar = false
  570.                     for i = 1, tonumber ( dsatz["MaximumCars"] ) do
  571.                         carvalue = MySQL_GetString("vehicles", "Special", "Slot LIKE '" ..i.."' AND Besitzer LIKE '"..pname.."'")
  572.                         if carvalue == 2 then
  573.                             vioSetElementData ( player, "yachtImBesitz", true )
  574.                         end
  575.                         if not carvalue then
  576.                             if MySQL_DatasetExist("buyit", "Hoechstbietender LIKE '"..pname.."' AND Typ LIKE 'Veh'") then
  577.                                 carvalue = 3
  578.                                 offerOnCar = true
  579.                             else
  580.                                 carvalue = 0
  581.                             end
  582.                         else
  583.                             if carvalue == 2 then
  584.                                 carvalue = 2
  585.                             else
  586.                                 carvalue = 1
  587.                             end
  588.                             curcars = curcars + 1
  589.                         end
  590.                         vioSetElementData ( player, "carslot"..i, carvalue )
  591.                     end
  592.                     vioSetElementData ( player, "curcars", curcars )
  593.                     vioSetElementData ( player, "deaths", tonumber ( dsatz["Tode"] ) )
  594.                     vioSetElementData ( player, "kills", tonumber ( dsatz["Kills"] ) )
  595.                     vioSetElementData ( player, "jailtime", tonumber ( dsatz["Knastzeit"] ) )
  596.                     vioSetElementData ( player, "prison", tonumber ( dsatz["Prison"] ) )
  597.                     vioSetElementData ( player, "heaventime", tonumber ( dsatz["Himmelszeit"] ) )
  598.                     local Hausschluessel = MySQL_GetString("houses", "ID", "Besitzer LIKE '" ..pname.."'")
  599.                     local key = tonumber ( dsatz["Hausschluessel"] )
  600.                     if Hausschluessel then
  601.                         vioSetElementData ( player, "housekey", tonumber ( Hausschluessel ) )
  602.                     elseif key <= 0 then
  603.                         vioSetElementData ( player, "housekey", key )
  604.                     else
  605.                         vioSetElementData ( player, "housekey", 0 )
  606.                     end
  607.                     vioSetElementData ( player, "hitglocke", tonumber ( dsatz["Hitglocke"] ) )
  608.                     vioSetElementData ( player, "bizkey", tonumber ( dsatz["Bizschluessel"] ) )
  609.                     vioSetElementData ( player, "bankmoney", tonumber ( dsatz["Bankgeld"] ) )
  610.                     vioSetElementData ( player, "drugs", tonumber ( dsatz["Drogen"] ) )
  611.                     vioSetElementData ( player, "skinid", tonumber ( dsatz["Skinid"] ) )
  612.                     vioSetElementData ( player, "carlicense", tonumber ( dsatz["Autofuehrerschein"] ) )
  613.                     vioSetElementData ( player, "bikelicense", tonumber ( dsatz["Motorradtfuehrerschein"] ) )
  614.                     vioSetElementData ( player, "lkwlicense", tonumber ( dsatz["LKWfuehrerschein"] ) )
  615.                     vioSetElementData ( player, "helilicense", tonumber ( dsatz["Helikopterfuehrerschein"] ) )
  616.                     vioSetElementData ( player, "planelicensea", tonumber ( dsatz["FlugscheinKlasseA"] ) )
  617.                     vioSetElementData ( player, "planelicenseb", tonumber ( dsatz["FlugscheinKlasseB"] ) )
  618.                     vioSetElementData ( player, "motorbootlicense", tonumber ( dsatz["Motorbootschein"] ) )
  619.                     vioSetElementData ( player, "segellicense", tonumber ( dsatz["Segelschein"] ) )
  620.                     vioSetElementData ( player, "fishinglicense", tonumber ( dsatz["Angelschein"] ) )
  621.                     vioSetElementData ( player, "wanteds", tonumber ( dsatz["Wanteds"] ) )
  622.                     vioSetElementData ( player, "stvo_punkte", tonumber ( dsatz["StvoPunkte"] ) )
  623.                     vioSetElementData ( player, "gunlicense", tonumber ( dsatz["Waffenschein"] ) )
  624.                     vioSetElementData ( player, "perso", tonumber ( dsatz["Perso"] ) )
  625.                     vioSetElementData ( player, "boni", tonumber ( dsatz["Boni"] ) )
  626.                     vioSetElementData ( player, "incomepayday", tonumber ( dsatz["IncomePayday"] ) )
  627.                     vioSetElementData ( player, "pdayincome", tonumber ( dsatz["PdayIncome"] ) )
  628.                     vioSetElementData ( player, "pdaykosten", tonumber ( dsatz["PdayKosten"] ) )
  629.                     vioSetElementData ( player, "telenr", tonumber ( dsatz["Telefonnr"] ) )
  630.                     vioSetElementData ( player, "warns", getPlayerWarnCount ( pname ) )
  631.                     vioSetElementData ( player, "gunboxa", dsatz["Gunbox1"] )
  632.                     vioSetElementData ( player, "gunboxb", dsatz["Gunbox2"] )
  633.                     vioSetElementData ( player, "gunboxc", dsatz["Gunbox3"] )
  634.                     vioSetElementData ( player, "buslevel", dsatz["Buslevel"] )
  635.                     vioSetElementData ( player, "job", dsatz["Job"] )
  636.                     vioSetElementData ( player, "jobtime", dsatz["Jobtime"] )
  637.                     vioSetElementData ( player, "club", dsatz["Club"] )
  638.                     vioSetElementData ( player, "favchannel", tonumber ( dsatz["FavRadio"] ) )
  639.                     vioSetElementData ( player, "bonuspoints", tonumber ( dsatz["Bonuspunkte"] ) )
  640.                     local skill = tonumber ( dsatz["Truckerskill"] )
  641.                     if not skill then
  642.                         skill = 0
  643.                     end
  644.                     vioSetElementData ( player, "truckerlvl", skill )
  645.                     vioSetElementData ( player, "airportlvl", tonumber ( dsatz["AirportLevel"] ) )
  646.                     vioSetElementData ( player, "farmerLVL", tonumber ( dsatz["farmerLVL"] ) )
  647.                     vioSetElementData ( player, "contract", tonumber ( dsatz["Contract"] ) )
  648.                     vioSetElementData ( player, "socialState", dsatz["SocialState"] )
  649.                     vioSetElementData ( player, "radaranzeige", dsatz["RadarAnzeige"] )
  650.                     if tonumber ( dsatz["SocialState"] ) then
  651.                         if tonumber ( dsatz["SocialState"] ) == 0 then
  652.                             vioSetElementData ( player, "socialState", "Obdachloser" )
  653.                         end
  654.                     end
  655.                     vioSetElementData ( player, "streetCleanPoints", tonumber ( dsatz["StreetCleanPoints"] ) )
  656.                     local handyString = dsatz["Handy"]
  657.                     local v1, v2
  658.                     v1 = tonumber ( gettok ( handyString, 1, string.byte ( '|' ) ) )
  659.                     v2 = tonumber ( gettok ( handyString, 2, string.byte ( '|' ) ) )
  660.                     vioSetElementData ( player, "handyType", v1 )
  661.                     vioSetElementData ( player, "handyCosts", v2 )
  662.                     loadAddictionsForPlayer ( player )
  663.                     --isPremium ( player )
  664.                     vioSetElementData ( player, "housex", 0 )
  665.                     vioSetElementData ( player, "housey", 0 )
  666.                     vioSetElementData ( player, "housez", 0 )
  667.                     vioSetElementData ( player, "house", "none" )
  668.                     vioSetElementData ( player, "curplayingtime", 0 )
  669.                     vioSetElementData ( player, "handystate", "on" )
  670.                     vioSetElementData ( player, "ammoTyp", 0 )
  671.                     vioSetElementData ( player, "ammoAmount", 0 )
  672.                     packageLoad ( player )
  673.                     achievload ( player )
  674.                     inventoryload ( player )
  675.                     elementDataSettings ( player )
  676.                     bonusLoad ( player )
  677.                     setPremiumData ( player )
  678.                     skillDataLoad ( player )
  679.                     _G[pname.."paydaytime"] = setTimer ( playingtime, 60000, 1, player )
  680.                     RemoteSpawnPlayer ( player )
  681.                     setElementFrozen ( player, true )
  682.                     setTimer ( setElementFrozen, 3000, 1, player, false )
  683.                     vioSetElementData ( player, "muted", 0 )
  684.                     triggerClientEvent ( player, "DisableLoginWindow", getRootElement() )                  
  685.                     triggerClientEvent ( player, "infobox_start", getRootElement(), "Du hast dich\nerfolgreich eingeloggt!\nDrücke F1, um das\nHilfemenü zu\nöffnen!", 5000, 0, 255, 0 )
  686.                     outputDebugString ("Spieler "..pname.." wurde eingeloggt, IP: "..getPlayerIP(player))
  687.                     vioSetElementData ( player, "loggedin", 1 )
  688.                     vioSetElementData ( player, "ElementClicked", false )
  689.                     if vioGetElementData ( player, "stvo_punkte" ) >= 15 then           -- SearchSTVO
  690.                         vioSetElementData ( player, "carlicense", 0 )
  691.                         vioSetElementData ( player, "stvo_punkte", 0 )
  692.                         MySQL_SetString("userdata", "Autofuehrerschein", vioGetElementData ( player, "carlicense" ), "Name LIKE '"..pname.."'")
  693.                         outputChatBox ( "Wegen deines schlechten Fahrverhaltens wurde dir dein Fuehrerschein abgenommen!", player, 125, 0, 0 )
  694.                     end
  695.                     vioSetElementData ( player, "object", tonumber ( MySQL_GetString ( "inventar", "Objekt", "Name LIKE '" ..pname.."'" ) ) )
  696.                     checkmsgs ( player )
  697.                     blacklistLogin ( pname )
  698.                     if houses["pickup"][getPlayerName(player)] then
  699.                         local x, y, z = getElementPosition (houses["pickup"][getPlayerName(player)])
  700.                         local pickupblip = createBlip ( x, y, z, 31, 2, 255, 0, 0, 255, 0, 99999, player )
  701.                     end
  702.                     -- *** EasterEgg ***
  703.                         if month == 4 and day == 4 then
  704.                             local oldlogin = MySQL_GetString("players", "Last_login", "Name LIKE '" ..pname.."'")
  705.                             local oldlogin1 = tonumber (  gettok ( oldlogin, 1, string.byte('.') ) )
  706.                             local oldlogin2 = tonumber (  gettok ( oldlogin, 2, string.byte('.') ) )
  707.                             if ( oldlogin1 ~= 4 or oldlogin2 ~= 4 ) or ( minute < 25 and hour < 16 ) then
  708.                                 putFoodInSlot ( player, 5 )
  709.                             end
  710.                         elseif month == 4 and day == 5 then
  711.                             local oldlogin = MySQL_GetString("players", "Last_login", "Name LIKE '" ..pname.."'")
  712.                             local oldlogin1 = tonumber (  gettok ( oldlogin, 1, string.byte('.') ) )
  713.                             local oldlogin2 = tonumber (  gettok ( oldlogin, 2, string.byte('.') ) )
  714.                             if oldlogin1 ~= 4 or oldlogin2 ~= 5 then
  715.                                 putFoodInSlot ( player, 5 )
  716.                             end
  717.                         end
  718.                     -- *** EasterEgg ***
  719.                     MySQL_SetString("players", "Last_login", lastlogin, "Name LIKE '"..pname.."'")
  720.                     MySQL_SetString("players", "LastLogin", lastLoginInt, "Name LIKE '"..pname.."'")
  721.                     local serial = getPlayerSerial ( player )
  722.                     MySQL_SetString("players", "Serial", serial, "Name LIKE '"..pname.."'")
  723.                     triggerClientEvent ( player, "aktualisiereMemberTabelle", player, fraktionMembersOffOn, zeitTable)
  724.                     local position = MySQL_GetString("logout", "Position", "Name LIKE '" ..pname.."'")
  725.                     if position then
  726.                         weapons = MySQL_GetString ( "logout", "Waffen", "Name LIKE '" ..pname.."'" )
  727.                         MySQL_DelRow ( "logout", "Name LIKE '"..pname.."'" )
  728.                         for i = 1, 12 do
  729.                             local wstring = gettok ( weapons, i, string.byte( '|' ) )
  730.                             if wstring then
  731.                                 if wstring then
  732.                                     if #wstring >= 3 then
  733.                                         local weapon = tonumber ( gettok ( wstring, 1, string.byte( ',' ) ) )
  734.                                         local ammo = tonumber ( gettok ( wstring, 2, string.byte( ',' ) ) )
  735.                                         giveWeapon ( player, weapon, ammo, true )
  736.                                         triggerClientEvent ( player, "sec_gun_give", getRootElement(), weapon, ammo )
  737.                                     end
  738.                                 end
  739.                             end
  740.                         end
  741.                         if position ~= "false" then
  742.                             local x = tonumber ( gettok ( position, 1, string.byte( '|' ) ) )
  743.                             local y = tonumber ( gettok ( position, 2, string.byte( '|' ) ) )
  744.                             local z = tonumber ( gettok ( position, 3, string.byte( '|' ) ) )
  745.                             local int = tonumber ( gettok ( position, 4, string.byte( '|' ) ) )
  746.                             local dim = tonumber ( gettok ( position, 5, string.byte( '|' ) ) )
  747.                             setTimer ( setElementInterior, 1000, 1, player, int )
  748.                             setTimer ( setElementDimension, 1000, 1, player, dim )
  749.                             setTimer ( setElementPosition, 1000, 1, player, x, y, z )
  750.                         end
  751.                     end
  752.                     getMailsForClient_func ( pname )
  753.                     setMaximumCarsForPlayer ( player )
  754.                     respawnAllVehiclesOnLogin ( player )
  755.                     triggerEvent ( "onVioPlayerLogin", player )
  756.                     if tonumber ( dsatz["pred"] ) == 0 then
  757.                         prompt ( player, promptMainText, 30 )
  758.                         mysql_vio_query ( "UPDATE userdata SET pred = '1' WHERE Name = '"..pname.."'" )
  759.                     end
  760.                 else
  761.                     triggerClientEvent ( player, "infobox_start", getRootElement(), "Ungueltiges Passwort -\nueberpruefe\ndeine Eingabe\noder melde dich\nim Forum.", 5000, 255, 0, 0 )
  762.                     vioSetElementData ( player, "pwfailed", tonumber ( vioGetElementData ( player, "pwfailed" )) + 1 )
  763.                     -- PW KICK 3x --
  764.                     --[[if vioGetElementData ( player, "pwfailed" ) >= 3 then
  765.                         outputDebugString ("Spieler "..tostring ( getPlayerName(player) ).." wurde aufgrund eines falschen Passworts gekickt!IP: "..tostring ( getPlayerIP(player) ) )
  766.                         kickPlayer ( player, "Du hast 3x das falsche Passwort eingegeben - Bitte melde dich bei einem Admin!", 0 )
  767.                     end]]
  768.                 end
  769.             end
  770.             if player and isElement ( player ) then
  771.                 bindKey ( player, "r", "down", reload )
  772.             end
  773.         end
  774.     end
  775. end
  776. addEvent ( "einloggen", true )
  777. addEventHandler ( "einloggen", getRootElement(), login_func )
  778. function datasave ( quitReason, reason )
  779.     DMDatabaseSave()
  780.     if clanMembers[source] then
  781.         clanMembers[source] = nil
  782.     end
  783.     if ticketPermitted[source] then
  784.         ticketPermitted[source] = nil
  785.     end
  786.     local pname = getPlayerName ( source )
  787.     removePlayerFromLoggedIn ( pname )
  788.     if vioGetElementData ( source, "loggedin" ) == 1 then
  789.         triggerEvent ( "onLoggedInPlayerQuit", source )
  790.         pname = MySQL_Save ( getPlayerName ( source ) )
  791.         fraktionMembers[vioGetElementData(source,"fraktion")][source] = nil
  792.         adminsIngame[source] = nil
  793.         if getElementData ( source, "isInHighNoon" ) or vioGetElementData ( source, "shootingRanchGun" ) then
  794.         elseif quitReason and reason ~= "Ausgeloggt." then
  795.             if vioGetElementData ( source, "wanteds" ) >= 1 --[[and ( quitReason == "Quit" or quitReason == "Unknown" )]] and vioGetElementData ( source, "jailtime" ) == 0 and vioGetElementData ( source, "prison" ) == 0 then
  796.                 local x, y, z = getElementPosition ( source )
  797.                 local copShape = createColSphere ( x, y, z, 20 )
  798.                 local elementsInCopSphere = getElementsWithinColShape ( copShape, "player" )
  799.                 destroyElement ( copShape )
  800.                 for key, cPlayer in ipairs ( elementsInCopSphere ) do
  801.                     if ( isOnDuty ( cPlayer ) or isArmy ( cPlayer ) ) and cPlayer ~= source then
  802.                         local wanteds = vioGetElementData ( source, "wanteds" )
  803.                         vioSetElementData ( source, "wanteds", 0 )
  804.                         vioSetElementData ( source, "jailtime", wanteds * math.ceil(jailtimeperwanted*1.4) + vioGetElementData ( source, "jailtime" ) )
  805.                         wantedCost = 100*wanteds*(wanteds*.5)
  806.                         vioSetElementData ( source, "money", vioGetElementData ( source, "money" ) - wantedCost )
  807.                         if vioGetElementData ( source, "money" ) < 0 then
  808.                             vioSetElementData ( source, "money", 0 )
  809.                         end
  810.                         outputChatBox ( "Der Gesuchte "..getPlayerName ( source ).." ist offline gegangen - er wird beim naechsten Einloggen im Knast sein.", cPlayer, 0, 125, 0 )
  811.                         offlinemsg ( "Du bist fuer "..(wanteds * math.ceil(jailtimeperwanted*1.4)).." mins im Gefaengnis (Offlineflucht?)", "Server", getPlayerName(source) )
  812.                         break
  813.                     end
  814.                 end
  815.             end
  816.             if quitReason == "Kicked" or quitReason == "Bad Connection" or quitReason == "Timed out" then
  817.                 local curWeaponsForSave = "|"
  818.                 for i = 1, 12 do
  819.                     if i ~= 10 and i ~= 12 then
  820.                         local weapon = getPedWeapon ( source, i )
  821.                         local ammo = getPedTotalAmmo ( source, i )
  822.                         if weapon and ammo then
  823.                             if weapon > 0 and ammo > 0 then
  824.                                 if #curWeaponsForSave <= 40 then
  825.                                     curWeaponsForSave = curWeaponsForSave..weapon..","..ammo.."|"
  826.                                 end
  827.                             end
  828.                         end
  829.                     end
  830.                 end
  831.                 if #curWeaponsForSave > 1 then
  832.                     mysql_vio_query( "INSERT INTO logout (Position, Waffen, Name) VALUES ('false', '"..curWeaponsForSave.."', '"..pname.."')")
  833.                 end
  834.             end
  835.         end
  836.         if vioGetElementData ( source, "callswith" ) then
  837.             if vioGetElementData ( source, "callswith" ) ~= "none" then
  838.                 local caller = getPlayerFromName ( vioGetElementData ( source, "callswith" ) )
  839.                 if caller then
  840.                     vioSetElementData ( caller, "callswith", "none" )
  841.                     vioSetElementData ( caller, "call", false )
  842.                     vioSetElementData ( caller, "calls", "none" )
  843.                     vioSetElementData ( caller, "callswith", "none" )
  844.                     vioSetElementData ( caller, "calledby", "none" )
  845.                     outputChatBox ( "*Knack* - Die Leitung ist tod!", caller, 125, 0, 0 )
  846.                 end
  847.                 vioSetElementData ( source, "callswith", "none" )
  848.                 vioSetElementData ( source, "call", false )
  849.                 vioSetElementData ( source, "calls", "none" )
  850.                 vioSetElementData ( source, "callswith", "none" )
  851.                 vioSetElementData ( source, "calledby", "none" )
  852.             end
  853.         end
  854.         datasave_remote ( source )
  855.         if vioGetElementData ( source, "isInArea51Mission" ) then
  856.             removeArea51Bots ( pname )
  857.         end
  858.         local veh = getPedOccupiedVehicle ( source )
  859.         if veh then
  860.             if isElement ( veh ) then
  861.                 if getElementModel(veh) == 502 then
  862.                     destroyElement ( veh )
  863.                 end
  864.             end
  865.         end
  866.         killTimer ( _G[pname.."paydaytime"] )
  867.         clearInv ( source )
  868.         clearUserdata ( source )
  869.         clearBonus ( source )
  870.         clearAchiev ( source )
  871.         clearPackage ( source )
  872.         clearDataSettings ( source )
  873.     end
  874. end
  875. addEventHandler ("onPlayerQuit", getRootElement(), datasave )
  876. function elementDataSettings ( player )
  877.     local pname = MySQL_Save ( getPlayerName ( player ) )
  878.     betaServerMessage ( player )
  879.     vioSetElementData ( player, "In_DMArena", 0 )
  880.     vioSetElementData ( player, "objectToPlace", false )
  881.     vioSetElementData ( player, "cheatingtrys", -1 )
  882.     vioSetElementData ( player, "growing", false )
  883.     vioSetElementData ( player, "isInRace", false )
  884.     vioSetElementData ( player, "callswithpolice", false )
  885.     vioSetElementData ( player, "callswithmedic", false )
  886.     vioSetElementData ( player, "callswithmechaniker", false )
  887.     vioSetElementData ( player, "isLive", false )
  888.     vioSetElementData ( player, "isInArea51Mission", false )
  889.     vioSetElementData ( player, "armingBomb", false )
  890.     vioSetElementData ( player, "tied", true )
  891.     vioSetElementData ( player, "hasBomb", false )
  892.     vioSetElementData ( player, "wanzen", false )
  893.     vioSetElementData ( player, "hunger", 50 )
  894.     vioSetElementData ( player, "isInHighNoon", false )
  895.     ------------------
  896.     local Weapon_Settings = MySQL_GetString("inventar", "Spezial", "Name LIKE '" ..pname.."'")
  897.     local shads = {}
  898.     if not Weapon_Settings then
  899.         for i = 1, 6 do
  900.             shads[i] = 0
  901.         end
  902.     else
  903.         for i = 1, 6 do
  904.             shads[i] = tonumber ( gettok ( Weapon_Settings, i, string.byte( '|' ) ) )
  905.         end
  906.     end
  907.     for i, on in pairs ( shads ) do
  908.         vioSetElementData ( player, "ammoTyp"..i, tonumber(on) )
  909.     end
  910.     ----------------
  911.     local Shader_Settings = MySQL_GetString("userdata", "Shader", "Name LIKE '" ..pname.."'")
  912.     local shads = {}
  913.     if not Shader_Settings then
  914.         for i = 1, 4 do
  915.             shads[i] = 0
  916.         end
  917.     else
  918.         for i = 1, 4 do
  919.             shads[i] = tonumber ( gettok ( Shader_Settings, i, string.byte( '|' ) ) )
  920.         end
  921.     end
  922.     for i, on in pairs ( shads ) do
  923.         if on == 1 then
  924.             triggerClientEvent ( player, "triggerVioShader"..i, player )
  925.             vioSetElementData ( player, "shader"..vals[i], 1 )
  926.         else
  927.             vioSetElementData ( player, "shader"..vals[i], 0 )
  928.         end
  929.     end
  930.     ----------------   
  931.     ArmyPermissions = MySQL_GetString("userdata", "ArmyPermissions", "Name LIKE '" ..pname.."'")
  932.     if not ArmyPermissions then
  933.         for i = 1, 10 do
  934.             vioSetElementData ( player, "armyperm"..i, 0 )
  935.         end
  936.     else
  937.         for i = 1, 10 do
  938.             vioSetElementData ( player, "armyperm"..i, tonumber ( gettok ( ArmyPermissions, i, string.byte( '|' ) ) ) )
  939.         end
  940.     end
  941. end
  942. function saveArmyPermissions ( player )
  943.     local pname = getPlayerName ( player )
  944.     local empty = ""
  945.     for i = 1, 10 do
  946.         empty = empty.."|"..vioGetElementData ( player, "armyperm"..i )
  947.     end
  948.     empty = empty.."|"
  949.     MySQL_SetString("userdata", "ArmyPermissions", empty, "Name LIKE '"..pname.."'")
  950. end
  951. function saveShaderInfo ( player )
  952.     if getElementData( player, "shader"..vals[1] ) and getElementData( player, "shader"..vals[2] ) and getElementData( player, "shader"..vals[3] ) and getElementData( player, "shader"..vals[4] ) then
  953.         local s_string = "|"..tonumber(getElementData( player, "shader"..vals[1] )).."|"..tonumber(getElementData( player, "shader"..vals[2] )).."|"..tonumber(getElementData( player, "shader"..vals[3] )).."|"..tonumber(getElementData( player, "shader"..vals[4] )).."|"
  954.         local pname = getPlayerName ( player )
  955.         MySQL_SetString("userdata", "Shader", s_string, "Name LIKE '"..pname.."'")
  956.     end
  957. end
  958. function saveSpecialInfo ( player )
  959.     local wert1, wert2, wert3, wert4, wert5, wert6
  960.     if not vioGetElementData( player, "ammoTyp1" ) or vioGetElementData( player, "ammoTyp1" ) == nil then
  961.         wert1 = 0
  962.     else
  963.         wert1 = tonumber(vioGetElementData( player, "ammoTyp1" ))
  964.     end
  965.     if not vioGetElementData( player, "ammoTyp2" ) or vioGetElementData( player, "ammoTyp2" ) == nil then
  966.         wert2 = 0
  967.     else
  968.         wert2 = tonumber(vioGetElementData( player, "ammoTyp2" ))
  969.     end
  970.     if not vioGetElementData( player, "ammoTyp3" ) or vioGetElementData( player, "ammoTyp3" ) == nil then
  971.         wert3 = 0
  972.     else
  973.         wert3 = tonumber(vioGetElementData( player, "ammoTyp3" ))
  974.     end
  975.     if not vioGetElementData( player, "ammoTyp4" ) or vioGetElementData( player, "ammoTyp4" ) == nil then
  976.         wert4 = 0
  977.     else
  978.         wert4 = tonumber(vioGetElementData( player, "ammoTyp4" ))
  979.     end
  980.     if not vioGetElementData( player, "ammoTyp5" ) or vioGetElementData( player, "ammoTyp5" ) == nil then
  981.         wert5 = 0
  982.     else
  983.         wert5 = tonumber(vioGetElementData( player, "ammoTyp5" ))
  984.     end
  985.     if not vioGetElementData( player, "ammoTyp6" ) or vioGetElementData( player, "ammoTyp6" ) == nil then
  986.         wert6 = 0
  987.     else
  988.         wert6 = tonumber(vioGetElementData( player, "ammoTyp6" ))
  989.     end
  990.     local s_string = "|"..wert1.."|"..wert2.."|"..wert3.."|"..wert4.."|"..wert5.."|"..wert6.."|"
  991.     -- "|0|0|0|0|0|0|"
  992.     local pname = getPlayerName ( player )
  993.     MySQL_SetString("inventar", "Spezial", s_string, "Name LIKE '"..pname.."'")
  994. end
  995. function SaveCarData ( player )
  996.     local pname = MySQL_Save ( getPlayerName ( player ) )
  997.     MySQL_SetString("userdata", "Geld", MySQL_Save ( MySQL_Save ( vioGetElementData ( player, "money" )) ), "Name LIKE '"..pname.."'")
  998.     MySQL_SetString("userdata", "CurrentCars", MySQL_Save ( MySQL_Save ( vioGetElementData ( player, "curcars" )) ), "Name LIKE '"..pname.."'")
  999.     MySQL_SetString("userdata", "MaximumCars", MySQL_Save ( MySQL_Save ( vioGetElementData ( player, "maxcars" )) ), "Name LIKE '"..pname.."'")
  1000. end
  1001. function datasave_remote ( player )
  1002.     local source = player
  1003.     if tonumber ( MySQL_Save ( vioGetElementData ( source, "loggedin" ))) == 1 then
  1004.         local pname = getPlayerName ( source )
  1005.         local fields = "SET"
  1006.         fields = fields.." Geld = '"..math.abs ( math.floor ( vioGetElementData ( source, "money" ) ) ).."'"
  1007.         fields = fields..", Fraktion = '"..math.abs ( math.floor ( vioGetElementData ( source, "fraktion") ) ).."'"
  1008.         fields = fields..", FraktionsRang = '"..math.floor ( vioGetElementData ( source, "rang" ) ).."'"
  1009.         fields = fields..", Spielzeit = '"..math.floor ( vioGetElementData ( source, "playingtime" ) ).."'"
  1010.         fields = fields..", Adminlevel = '"..math.floor ( vioGetElementData ( source, "adminlvl" ) ).."'"
  1011.         fields = fields..", Hitglocke = '"..math.floor ( vioGetElementData ( source, "hitglocke" ) ).."'"
  1012.         fields = fields..", CurrentCars = '"..math.floor ( vioGetElementData ( source, "curcars" ) ).."'"
  1013.         fields = fields..", MaximumCars = '"..math.floor ( vioGetElementData ( source, "maxcars" ) ).."'"
  1014.         fields = fields..", Tode = '"..math.floor ( vioGetElementData ( source, "deaths" ) ).."'"
  1015.         fields = fields..", Kills = '"..math.floor ( vioGetElementData ( source, "kills" ) ).."'"
  1016.         fields = fields..", Knastzeit = '"..math.floor ( vioGetElementData ( source, "jailtime" ) ).."'"
  1017.         fields = fields..", Prison = '"..math.floor ( vioGetElementData ( source, "prison" ) ).."'"
  1018.         fields = fields..", Himmelszeit = '"..math.floor ( vioGetElementData ( source, "heaventime" ) ).."'"
  1019.         fields = fields..", Hausschluessel = '"..math.floor ( vioGetElementData ( source, "housekey" ) ).."'"
  1020.         fields = fields..", Bankgeld = '"..math.floor ( vioGetElementData ( source, "bankmoney" ) ).."'"
  1021.         fields = fields..", Drogen = '"..math.floor ( vioGetElementData ( source, "drugs" ) ).."'"
  1022.         fields = fields..", Skinid = '"..math.floor ( vioGetElementData ( source, "skinid" ) ).."'"
  1023.         fields = fields..", Wanteds = '"..math.floor ( vioGetElementData ( source, "wanteds" ) ).."'"
  1024.         fields = fields..", StvoPunkte = '"..math.floor ( vioGetElementData ( source, "stvo_punkte" ) ).."'"
  1025.         fields = fields..", Boni = '"..math.floor ( vioGetElementData ( source, "boni" ) ).."'"
  1026.         fields = fields..", IncomePayday = '"..math.floor ( vioGetElementData ( source, "incomepayday" ) ).."'"
  1027.         fields = fields..", PdayIncome = '"..math.floor ( vioGetElementData ( source, "pdayincome" ) ).."'"
  1028.         fields = fields..", PdayKosten = '"..math.floor ( vioGetElementData ( source, "pdaykosten" ) ).."'"
  1029.         fields = fields..", Warns = '"..math.floor ( vioGetElementData ( source, "warns" ) ).."'"
  1030.         fields = fields..", Gunbox1 = '"..vioGetElementData ( source, "gunboxa" ).."'"
  1031.         fields = fields..", Gunbox2 = '"..vioGetElementData ( source, "gunboxb" ).."'"
  1032.         fields = fields..", Gunbox3 = '"..vioGetElementData ( source, "gunboxc" ).."'"
  1033.         fields = fields..", Job = '"..vioGetElementData ( source, "job" ).."'"
  1034.         fields = fields..", Jobtime = '"..math.floor ( vioGetElementData ( source, "jobtime" ) ).."'"
  1035.         fields = fields..", Club = '"..vioGetElementData ( source, "club" ).."'"
  1036.         fields = fields..", FavRadio = '"..math.floor ( vioGetElementData ( source, "favchannel" ) ).."'"
  1037.         fields = fields..", Bonuspunkte = '"..math.floor ( vioGetElementData ( source, "bonuspoints" ) ).."'"
  1038.         fields = fields..", RadarAnzeige = '"..math.floor ( vioGetElementData ( source, "radaranzeige" ) ).."'"
  1039.         local skill = tonumber ( vioGetElementData ( source, "truckerlvl" ) )
  1040.         if not skill then
  1041.             skill = 0
  1042.         end
  1043.         fields = fields..", Truckerskill = '"..skill.."'"
  1044.         fields = fields..", farmerLVL = '"..vioGetElementData ( source, "farmerLVL" ).."'"
  1045.         fields = fields..", AirportLevel = '"..math.floor ( vioGetElementData ( source, "airportlvl" ) ).."'"
  1046.         fields = fields..", Contract = '"..math.floor ( vioGetElementData ( source, "contract" ) ).."'"
  1047.         fields = fields..", SocialState = '".. vioGetElementData ( source, "socialState") .."'"
  1048.         fields = fields..", StreetCleanPoints = '"..math.floor ( getElementData ( source, "streetCleanPoints" ) ).."'"
  1049.         local v1 = "|"..vioGetElementData ( source, "handyType" ).."|"
  1050.         local v2 = vioGetElementData ( source, "handyCosts" ).."|"
  1051.         local v3 = v1..v2
  1052.         fields = fields..", Handy = '"..v3.."'"
  1053.         mysql_vio_query ( "UPDATE userdata "..fields.." WHERE Name LIKE '"..pname.."'" )
  1054.         saveAddictionsForPlayer ( source )
  1055.         packageSave(source)
  1056.         achievsave(source)
  1057.         inventorysave(source)
  1058.         bonusSave(source)
  1059.         skillDataSave ( player )
  1060.         saveArmyPermissions ( player )
  1061.         saveShaderInfo ( player )
  1062.         saveSpecialInfo ( player )
  1063.         outputDebugString ("Daten fuer Spieler "..pname.." wurden gesichert!")
  1064.     end
  1065. end
  1066. function achievsave ( player )
  1067.     local pname = MySQL_Save ( getPlayerName ( player ) )
  1068.     saveHorseShoesFound ( player, pname )
  1069.     MySQL_SetString("achievments", "Waffenschieber", MySQL_Save ( vioGetElementData ( player, "gunloads") ), "Name LIKE '"..pname.."'")
  1070.     MySQL_SetString("achievments", "Fahrzeugwahn", MySQL_Save ( vioGetElementData ( player, "carwahn_achiev") ), "Name LIKE '"..pname.."'")
  1071.     savePlayingTimeForSleeplessAchiev ( player, pname )
  1072. end
  1073. function achievload ( player )
  1074.     local pname = MySQL_Save ( getPlayerName ( player ) )
  1075.     local dsatz
  1076.     local result = mysql_query ( handler, "SELECT * from achievments WHERE Name LIKE '"..pname.."'" )
  1077.     if result then
  1078.         if ( mysql_num_rows ( result ) > 0 ) then
  1079.             dsatz = mysql_fetch_assoc ( result )
  1080.             mysql_free_result ( result )
  1081.         end
  1082.     end
  1083.     vioSetElementData ( player, "schlaflosinsa", dsatz["SchlaflosInSA"] )
  1084.     vioSetElementData ( player, "gunloads", dsatz["Waffenschieber"] )
  1085.     vioSetElementData ( player, "angler_achiev", dsatz["Angler"] )
  1086.     vioSetElementData ( player, "licenses_achiev", dsatz["Lizensen"] )
  1087.     vioSetElementData ( player, "carwahn_achiev", dsatz["Fahrzeugwahn"] )
  1088.     vioSetElementData ( player, "collectr_achiev", dsatz["DerSammler"] )
  1089.     vioSetElementData ( player, "rl_achiev", dsatz["ReallifeWTF"] )
  1090.     vioSetElementData ( player, "own_foots", dsatz["EigeneFuesse"] )
  1091.     vioSetElementData ( player, "kingofthehill_achiev", dsatz["KingOfTheHill"] )
  1092.     vioSetElementData ( player, "thetruthisoutthere_achiev", dsatz["TheTruthIsOutThere"] )
  1093.     vioSetElementData ( player, "silentassasin_achiev", dsatz["SilentAssasin"] )
  1094.     vioSetElementData ( player, "highwaytohell_achiev", dsatz["HighwayToHell"] )
  1095.     vioSetElementData ( player, "revolverheld_achiev", tonumber ( dsatz["Revolverheld"] ) )
  1096.     vioSetElementData ( player, "chickendinner_achiev", tonumber ( dsatz["ChickenDinner"] ) )
  1097.     vioSetElementData ( player, "nichtsgehtmehr_achiev", tonumber ( dsatz["NichtGehtMehr"] ) )
  1098.     vioSetElementData ( player, "highscore_achiev", tonumber ( dsatz["highscore"] ) == 1 )
  1099.     local dstring = dsatz["LookoutsA"]
  1100.     triggerClientEvent ( player, "hideLookoutMarkers", getRootElement(), dstring )
  1101.     local count = 0
  1102.     for i = 1, 10 do
  1103.         if tonumber ( gettok ( dstring, i, string.byte ( '|' ) ) ) == 1 then
  1104.             count = count + 1
  1105.         end
  1106.     end
  1107.     vioSetElementData ( player, "viewpoints", count )
  1108.     dsatz = nil
  1109.     vioSetElementData ( player, "schlaflosinsa", MySQL_GetString("achievments", "SchlaflosInSA", "Name LIKE '" ..pname.."'") )
  1110.     vioSetElementData ( player, "gunloads", MySQL_GetString("achievments", "Waffenschieber", "Name LIKE '" ..pname.."'") )
  1111.     vioSetElementData ( player, "angler_achiev", MySQL_GetString("achievments", "Angler", "Name LIKE '" ..pname.."'") )
  1112.     vioSetElementData ( player, "licenses_achiev", MySQL_GetString("achievments", "Lizensen", "Name LIKE '" ..pname.."'") )
  1113.     vioSetElementData ( player, "carwahn_achiev", MySQL_GetString("achievments", "Fahrzeugwahn", "Name LIKE '" ..pname.."'") )
  1114.     vioSetElementData ( player, "collectr_achiev", MySQL_GetString("achievments", "DerSammler", "Name LIKE '" ..pname.."'") )
  1115.     vioSetElementData ( player, "rl_achiev", MySQL_GetString("achievments", "ReallifeWTF", "Name LIKE '" ..pname.."'") )
  1116.     vioSetElementData ( player, "own_foots", MySQL_GetString("achievments", "EigeneFuesse", "Name LIKE '" ..pname.."'") )
  1117.     vioSetElementData ( player, "kingofthehill_achiev", MySQL_GetString("achievments", "KingOfTheHill", "Name LIKE '" ..pname.."'") )
  1118.     vioSetElementData ( player, "thetruthisoutthere_achiev", MySQL_GetString("achievments", "TheTruthIsOutThere", "Name LIKE '" ..pname.."'") )
  1119.     vioSetElementData ( player, "silentassasin_achiev", MySQL_GetString("achievments", "SilentAssasin", "Name LIKE '" ..pname.."'") )
  1120.     vioSetElementData ( player, "highwaytohell_achiev", MySQL_GetString("achievments", "HighwayToHell", "Name LIKE '" ..pname.."'") )
  1121.     vioSetElementData ( player, "revolverheld_achiev", tonumber ( MySQL_GetString("achievments", "Revolverheld", "Name LIKE '" ..pname.."'") ) )
  1122.     vioSetElementData ( player, "chickendinner_achiev", tonumber ( MySQL_GetString("achievments", "ChickenDinner", "Name LIKE '" ..pname.."'") ) )
  1123.     vioSetElementData ( player, "nichtsgehtmehr_achiev", tonumber ( MySQL_GetString("achievments", "NichtGehtMehr", "Name LIKE '" ..pname.."'") ) )
  1124.     loadHorseShoesFound ( player, pname )
  1125.     loadPlayingTimeForSleeplessAchiev ( player, pname )
  1126. end
  1127. function inventorysave ( player )
  1128.     --[[local pname = getPlayerName ( player )
  1129.     MySQL_SetString("inventar", "Blumensamen", MySQL_Save ( vioGetElementData ( player, "flowerseeds") ) , "Name LIKE '"..pname.."'")
  1130.     MySQL_SetString("inventar", "Essensslot1", MySQL_Save ( vioGetElementData ( player, "food1") ) , "Name LIKE '"..pname.."'")
  1131.     MySQL_SetString("inventar", "Essensslot2", MySQL_Save ( vioGetElementData ( player, "food2") ) , "Name LIKE '"..pname.."'")
  1132.     MySQL_SetString("inventar", "Essensslot3", MySQL_Save ( vioGetElementData ( player, "food3") ) , "Name LIKE '"..pname.."'")
  1133.     MySQL_SetString("inventar", "Zigaretten", MySQL_Save ( vioGetElementData ( player, "zigaretten") ), "Name LIKE '"..pname.."'")
  1134.     MySQL_SetString("inventar", "Materials", MySQL_Save ( vioGetElementData ( player, "mats") ) , "Name LIKE '"..pname.."'")
  1135.     MySQL_SetString("inventar", "Benzinkanister", MySQL_Save ( vioGetElementData ( player, "benzinkannister") ) , "Name LIKE '"..pname.."'")
  1136.     MySQL_SetString("inventar", "FruitNotebook", MySQL_Save ( vioGetElementData ( player, "fruitNotebook" )) , "Name LIKE '"..pname.."'")
  1137.     MySQL_SetString("inventar", "Objekt", vioGetElementData ( player, "object" ), "Name LIKE '" ..pname.."'" )
  1138.     MySQL_SetString("inventar", "Chips", vioGetElementData ( player, "casinoChips" ), "Name LIKE '" ..pname.."'" )
  1139.     MySQL_SetString("inventar", "Peilsender", MySQL_Save ( vioGetElementData ( player, "peilsender")"Name LIKE '"..pname.."'")
  1140.     MySQL_SetString("inventar", "Wuerfel", MySQL_Save ( vioGetElementData ( player, "dice") ) , "Name LIKE '"..pname.."'")
  1141.     MySQL_SetString("inventar", "Palmensamen", MySQL_Save ( vioGetElementData ( player, "palmseeds") ) , "Name LIKE '"..pname.."'")
  1142.     MySQL_SetString("inventar", "Telefonbuch", MySQL_Save ( vioGetElementData ( player, "phonebook") ) , "Name LIKE '"..pname.."'")
  1143.     MySQL_SetString("inventar", "Lottoschein", MySQL_Save ( vioGetElementData ( player, "lottozahlen") ) , "Name LIKE '"..pname.."'")
  1144.     MySQL_SetString("inventar", "Waffenslot1", MySQL_Save ( vioGetElementData ( player, "guninv1") ) , "Name LIKE '"..pname.."'")
  1145.     MySQL_SetString("inventar", "Waffenslot2", MySQL_Save ( vioGetElementData ( player, "guninv2") ) , "Name LIKE '"..pname.."'")
  1146.     MySQL_SetString("inventar", "Waffenslot3", MySQL_Save ( vioGetElementData ( player, "guninv3") ) , "Name LIKE '"..pname.."'")
  1147.     MySQL_SetString("inventar", "Waffenslot4", MySQL_Save ( vioGetElementData ( player, "guninv4") ) , "Name LIKE '"..pname.."'")
  1148.     MySQL_SetString("inventar", "Waffenslot5", MySQL_Save ( vioGetElementData ( player, "guninv5") ) , "Name LIKE '"..pname.."'")
  1149. end ]]--
  1150.     local fields = "SET"
  1151.     fields = fields.." Blumensamen = '"..vioGetElementData ( player, "flowerseeds" ).."'"
  1152.     fields = fields..", Essensslot1 = '"..vioGetElementData ( player, "food1" ).."'"
  1153.     fields = fields..", Essensslot2 = '"..vioGetElementData ( player, "food2" ).."'"
  1154.     fields = fields..", Essensslot3 = '"..vioGetElementData ( player, "food3" ).."'"
  1155.     fields = fields..", Zigaretten = '"..vioGetElementData ( player, "zigaretten" ).."'"
  1156.     fields = fields..", Materials = '"..vioGetElementData ( player, "mats" ).."'"
  1157.     fields = fields..", Benzinkanister = '"..vioGetElementData ( player, "benzinkannister" ).."'"
  1158.     fields = fields..", FruitNotebook = '"..vioGetElementData ( player, "fruitNotebook" ).."'"
  1159.     fields = fields..", Objekt = '"..vioGetElementData ( player, "object" ).."'"
  1160.     fields = fields..", Chips = '"..vioGetElementData ( player, "casinoChips" ).."'"
  1161.     fields = fields..", Medikit = '"..vioGetElementData ( player, "medikits" ).."'"
  1162.     fields = fields..", Repairkit = '"..vioGetElementData ( player, "repairkits" ).."'"
  1163.     --fields = fields..", Geschenke = '"..vioGetElementData ( player, "presents" ).."'"
  1164.     mysql_vio_query ( "UPDATE inventar "..fields.." WHERE Name LIKE '"..pname.."'" )
  1165. end
  1166. function casinoMoneySave ( player )
  1167.     if vioGetElementData ( player, "loggedin" ) == 1 then
  1168.         local name = getPlayerName ( player )
  1169.         local chips = math.abs ( math.floor ( vioGetElementData ( player, "casinoChips" ) ) )
  1170.         local money = math.floor ( vioGetElementData ( player, "money" ) )
  1171.         local bankMoney = math.floor ( vioGetElementData ( player, "bankmoney" ) )
  1172.         mysql_vio_query ( "UPDATE inventar SET Chips = '"..chips.."' WHERE Name LIKE '"..name.."'" )
  1173.         mysql_vio_query ( "UPDATE userdata SET Geld = '"..money.."' WHERE Name LIKE '"..name.."'" )
  1174.         mysql_vio_query ( "UPDATE userdata SET Bankgeld = '"..bankMoney.."' WHERE Name LIKE '"..name.."'" )
  1175.     end
  1176. end
  1177. function inventoryload ( player )
  1178.     local pname = getPlayerName ( player )
  1179.     vioSetElementData ( player, "playerid", tonumber ( MySQL_GetString("players", "id", "Name LIKE '" ..pname.."'")) )
  1180.     local dsatz
  1181.     local result = mysql_query ( handler, "SELECT * from inventar WHERE Name LIKE '"..pname.."'" )
  1182.     if not result then
  1183.         result = mysql_query(handler, "INSERT INTO `inventar` (`Name`, `Wuerfel`, `Blumensamen`, `Lottoschein`, `Essensslot1`, `Essensslot2`, `Essensslot3`, `Waffenslot1`, `Waffenslot2`, `Waffenslot3`, `Zigaretten`, `Materials`, `Benzinkanister`, `FruitNotebook`, `Gameboy`, `Objekt`, `Chips`, `Geschenke`, `fishing`, `fglass`, `Medikit`, `Spezial`, `Repairkit`) VALUES ('"..pname.."', '0', '0', '0|0|0|0|0|0', '0', '0', '0', '0|0', '0|0', '0|0', '10', '0', '0', '1', '0', '0', '0', '0', '0|0|0|0;0|0;0|0;0', '0', '0', '|0|0|0|0|0|0|', '0')" )
  1184.     end
  1185.     if result then
  1186.         result = mysql_query ( handler, "SELECT * from inventar WHERE Name LIKE '"..pname.."'" )
  1187.         if ( mysql_num_rows ( result ) > 0 ) then
  1188.             dsatz = mysql_fetch_assoc ( result )
  1189.             mysql_free_result ( result )
  1190.         else
  1191.             outputDebugString ( "Fehler! "..pname.." hat kein Inventar!")
  1192.         end
  1193.     else
  1194.         outputDebugString ( "Fehler! "..pname.." hat kein Inventar!")
  1195.     end
  1196.     if dsatz["Wuerfel"] then
  1197.         vioSetElementData ( player, "dice", tonumber ( dsatz["Wuerfel"] ) )
  1198.     else
  1199.         vioSetElementData ( player, "dice", 0 )
  1200.     end
  1201.     vioSetElementData ( player, "flowerseeds", tonumber ( dsatz["Blumensamen"] ) )
  1202.     vioSetElementData ( player, "food1", tonumber ( dsatz["Essensslot1"] ) )
  1203.     vioSetElementData ( player, "food2", tonumber ( dsatz["Essensslot2"] ) )
  1204.     vioSetElementData ( player, "food3", tonumber ( dsatz["Essensslot3"] ) )
  1205.     vioSetElementData ( player, "zigaretten", tonumber ( dsatz["Zigaretten"] ) )
  1206.     vioSetElementData ( player, "mats", tonumber ( dsatz["Materials"] ) )
  1207.     vioSetElementData ( player, "benzinkannister", tonumber ( dsatz["Benzinkanister"] ) )
  1208.     vioSetElementData ( player, "fruitNotebook", tonumber ( dsatz["FruitNotebook"] ) )
  1209.     vioSetElementData ( player, "casinoChips", tonumber ( dsatz["Chips"] ) )
  1210.     vioSetElementData ( player, "gameboy", tonumber ( dsatz["Gameboy"] ) )
  1211.     vioSetElementData ( player, "medikits", tonumber ( dsatz["Medikit"] ) )
  1212.     vioSetElementData ( player, "repairkits", tonumber ( dsatz["Repairkit"] ) )
  1213.     -- X-MAS --
  1214.     -- vioSetElementData ( player, "presents", tonumber ( dsatz["Geschenke"] ) )
  1215.     -- X-MAS --
  1216.     dsatz = nil
  1217.     --[[
  1218.     vioSetElementData ( player, "dice", tonumber ( MySQL_GetString("inventar", "Wuerfel", "Name LIKE '" ..pname.."'")) )
  1219.     vioSetElementData ( player, "flowerseeds", tonumber ( MySQL_GetString("inventar", "Blumensamen", "Name LIKE '" ..pname.."'")) )
  1220.     vioSetElementData ( player, "food1", tonumber ( MySQL_GetString("inventar", "Essensslot1", "Name LIKE '" ..pname.."'")) )
  1221.     vioSetElementData ( player, "food2", tonumber ( MySQL_GetString("inventar", "Essensslot2", "Name LIKE '" ..pname.."'")) )
  1222.     vioSetElementData ( player, "food3", tonumber ( MySQL_GetString("inventar", "Essensslot3", "Name LIKE '" ..pname.."'")) )
  1223.     vioSetElementData ( player, "zigaretten", tonumber ( MySQL_GetString("inventar", "Zigaretten", "Name LIKE '" ..pname.."'") ) )
  1224.     vioSetElementData ( player, "mats", tonumber ( MySQL_GetString("inventar", "Materials", "Name LIKE '" ..pname.."'") ) )
  1225.     vioSetElementData ( player, "benzinkannister", tonumber ( MySQL_GetString("inventar", "Benzinkanister", "Name LIKE '" ..pname.."'") ) )
  1226.     vioSetElementData ( player, "fruitNotebook", tonumber ( MySQL_GetString("inventar", "FruitNotebook", "Name LIKE '" ..pname.."'") ) )
  1227.     vioSetElementData ( player, "casinoChips", tonumber ( MySQL_GetString( "inventar", "Chips", "Name LIKE '" ..pname.."'") ) )
  1228.     vioSetElementData ( player, "gameboy", tonumber ( MySQL_GetString ( "inventar", "Gameboy", "Name LIKE '"..pname.."'" ) ) )
  1229.     ]]
  1230. end
  1231. -- Info: Angabe von Last_Login in Tagen seit Jahresanfang, Angabe von Geschlecht in 1 u. 0 - 1 = Weiblich, 0 = männlich
  1232. -- Anreise in 1 u. 0, 0 = Schiff, 1 = Flugzeug
  1233. -- Scheine: 0 = nicht vorhanden, 1 = vorhanden
  1234. function logoutPlayer_func ( player, x, y, z, int, dim )
  1235.     local client = player
  1236.     if vioGetElementData ( client, "shootingRanchGun" ) then
  1237.     else
  1238.         local pname = MySQL_Save ( getPlayerName ( client ) )
  1239.         local int = tonumber ( MySQL_Save ( int ) )
  1240.         local dim = tonumber ( MySQL_Save ( dim ) )
  1241.         local curWeaponsForSave = "|"
  1242.         for i = 1, 11 do
  1243.             if i ~= 10 then
  1244.                 local weapon = getPedWeapon ( client, i )
  1245.                 local ammo = getPedTotalAmmo ( client, i )
  1246.                 if weapon and ammo then
  1247.                     if weapon > 0 and ammo > 0 then
  1248.                         if #curWeaponsForSave <= 40 then
  1249.                             curWeaponsForSave = curWeaponsForSave..weapon..","..ammo.."|"
  1250.                         end
  1251.                     end
  1252.                 end
  1253.             end
  1254.         end
  1255.         curWeaponsForSave = MySQL_Save ( curWeaponsForSave )
  1256.         pos = "|"..(math.floor(x*100)/100).."|"..(math.floor(y*100)/100).."|"..(math.floor(z*100)/100).."|"..int.."|"..dim.."|"
  1257.         if #curWeaponsForSave < 5 then
  1258.             curWeaponsForSave = ""
  1259.         end
  1260.         local result = mysql_vio_query( "INSERT INTO logout (Position, Waffen, Name) VALUES ('"..pos.."', '"..curWeaponsForSave.."', '"..pname.."')")
  1261.         kickPlayer ( client, "Ausgeloggt." )
  1262.     end
  1263. end
  1264. addEvent ( "logoutPlayer", true )
  1265. addEventHandler ( "logoutPlayer", getRootElement(), logoutPlayer_func )
  1266. function loescheAlleSpielerUnter3Stunden ()
  1267.     local count =  tonumber ( MySQL_ExistAmount ( "userdata", "`Spielzeit` >= '180'" ) )
  1268.     local serial = ""
  1269.     if count > 0 then
  1270.         local result = mysql_query ( handler, "SELECT Name FROM userdata" )
  1271.         local row = mysql_fetch_assoc ( result )
  1272.         for i = 1, count do
  1273.             mysql_vio_query ( "DELETE FROM achievments WHERE Name LIKE '"..name.."'" )
  1274.             mysql_vio_query ( "DELETE FROM bonustable WHERE Name LIKE '"..name.."'" )
  1275.             mysql_vio_query ( "DELETE FROM inventar WHERE Name LIKE '"..name.."'" )
  1276.             mysql_vio_query ( "DELETE FROM players WHERE Name LIKE '"..name.."'" )
  1277.             mysql_vio_query ( "DELETE FROM skills WHERE Name LIKE '"..name.."'" )
  1278.             mysql_vio_query ( "DELETE FROM userdata WHERE Name LIKE '"..name.."'" )
  1279.             mysql_vio_query ( "DELETE FROM packages WHERE Name LIKE '"..name.."'" )
  1280.         end
  1281.         mysql_free_result(result)
  1282.     end
  1283. end
  1284. --addCommandHandler ("loeschAlleUnterDrei", loescheAlleSpielerUnter3Stunden)
  1285. local doubleSerialPlayers = {}
  1286. local doubleSerialPlayerTime = {}
  1287. local doubleSerialPlayerTime2 = {}
  1288. local doubleSerialPlayerTime3 = {}
  1289. local doubleSerialPlayerTime4 = {}
  1290. local doubleSerialPlayerTime5 = {}
  1291. local doubleSerialPlayerTime6 = {}
  1292. local doubleSerialPlayerTime7 = {}
  1293. local higherSpielzeit = {}
  1294. local nichtExistend = {}
  1295. local dontDeleteMe = {}
  1296. function loescheAlleMultis ()
  1297.     local count =  tonumber ( MySQL_ExistAmount ( "players", "`Geburtsdatum_Jahr` >= '0'" ) )
  1298.     local serial = ""
  1299.     local spieler = ""
  1300.     local boole = false
  1301.     if count > 0 then
  1302.         local result = mysql_query ( handler, "SELECT Name,Serial FROM players" )
  1303.         for i = 1, count do
  1304.             local row = mysql_fetch_assoc ( result )
  1305.             serial = tostring(row["Serial"])
  1306.             if tonumber ( MySQL_ExistAmount ( "players", "`Serial` LIKE '"..serial.."'" )) > 1 then
  1307.                 doubleSerialPlayers[tostring(row["Name"])] = serial
  1308.             end
  1309.         end
  1310.         mysql_free_result ( result )
  1311.         for playername, seriala in pairs (doubleSerialPlayers) do
  1312.             if MySQL_GetString ( "userdata", "Spielzeit", "Name LIKE '"..playername.."'" ) then    
  1313.                 if higherSpielzeit[seriala] == nil then
  1314.                     higherSpielzeit[seriala] = tonumber(MySQL_GetString ( "userdata", "Spielzeit", "Name LIKE '"..playername.."'" ))
  1315.                     dontDeleteMe[seriala] = playername
  1316.                 elseif higherSpielzeit[seriala] < tonumber(MySQL_GetString ( "userdata", "Spielzeit", "Name LIKE '"..playername.."'" )) then
  1317.                     higherSpielzeit[seriala] = tonumber (MySQL_GetString ( "userdata", "Spielzeit", "Name LIKE '"..playername.."'" ))
  1318.                     dontDeleteMe[seriala] = playername         
  1319.                 end
  1320.             else
  1321.                 nichtExistend[playername] = true
  1322.             end
  1323.         end
  1324.         local result2 = mysql_query ( handler, "SELECT Name,Serial FROM players" )
  1325.         for i = 1, count do
  1326.             local row1 = mysql_fetch_assoc ( result2 )
  1327.             spieler = tostring(row1["Name"])
  1328.             serial = tostring(row1["Serial"])
  1329.             boole = false
  1330.             for ser, pla in pairs (dontDeleteMe) do
  1331.                 if spieler == pla then
  1332.                     boole = true
  1333.                     break
  1334.                 end
  1335.             end
  1336.             if not boole and doubleSerialPlayers[spieler] == serial then
  1337.                 outputChatBox (spieler)
  1338.                 mysql_vio_query ( "DELETE FROM achievments WHERE Name LIKE '"..spieler.."'" )
  1339.                 mysql_vio_query ( "DELETE FROM bonustable WHERE Name LIKE '"..spieler.."'" )
  1340.                 mysql_vio_query ( "DELETE FROM inventar WHERE Name LIKE '"..spieler.."'" )
  1341.                 mysql_vio_query ( "DELETE FROM players WHERE Name LIKE '"..spieler.."'" )
  1342.                 mysql_vio_query ( "DELETE FROM skills WHERE Name LIKE '"..spieler.."'" )
  1343.                 mysql_vio_query ( "DELETE FROM userdata WHERE Name LIKE '"..spieler.."'" )
  1344.                 mysql_vio_query ( "DELETE FROM packages WHERE Name LIKE '"..spieler.."'" )
  1345.             end
  1346.         end
  1347.         mysql_free_result ( result2 )
  1348.     end
  1349.     outputChatBox ("_________________________")
  1350.     for serial, playername in pairs (dontDeleteMe) do
  1351.         outputChatBox (playername .. " | "..serial)
  1352.     end
  1353.     --[[for pname, boolean in pairs (nichtExistend) do
  1354.         mysql_vio_query ( "DELETE FROM achievments WHERE Name LIKE '"..pname.."'" )
  1355.         mysql_vio_query ( "DELETE FROM bonustable WHERE Name LIKE '"..pname.."'" )
  1356.         mysql_vio_query ( "DELETE FROM inventar WHERE Name LIKE '"..pname.."'" )
  1357.         mysql_vio_query ( "DELETE FROM players WHERE Name LIKE '"..pname.."'" )
  1358.         mysql_vio_query ( "DELETE FROM skills WHERE Name LIKE '"..pname.."'" )
  1359.         mysql_vio_query ( "DELETE FROM userdata WHERE Name LIKE '"..pname.."'" )
  1360.         mysql_vio_query ( "DELETE FROM packages WHERE Name LIKE '"..pname.."'" )
  1361.     end]]
  1362. end
  1363. --addCommandHandler ("loeschAlleMultis", loescheAlleMultis)
  1364. function loeschdenspielerweg ( player, cmd, target )
  1365.     if vioGetElementData ( player, "adminlvl") >= 6 then
  1366.         if MySQL_DatasetExist ( "players", "NAME LIKE '"..target.."'") then
  1367.             mysql_vio_query ( "DELETE FROM achievments WHERE Name LIKE '"..target.."'" )
  1368.             mysql_vio_query ( "DELETE FROM bonustable WHERE Name LIKE '"..target.."'" )
  1369.             mysql_vio_query ( "DELETE FROM inventar WHERE Name LIKE '"..target.."'" )
  1370.             mysql_vio_query ( "DELETE FROM players WHERE Name LIKE '"..target.."'" )
  1371.             mysql_vio_query ( "DELETE FROM skills WHERE Name LIKE '"..target.."'" )
  1372.             mysql_vio_query ( "DELETE FROM userdata WHERE Name LIKE '"..target.."'" )
  1373.             mysql_vio_query ( "DELETE FROM packages WHERE Name LIKE '"..target.."'" )
  1374.             outputChatBox ( "Der Account wurde gelöscht!", player, 0, 255, 0 )
  1375.         end
  1376.     end
  1377. end
  1378. addCommandHandler ( "loeschaccount", loeschdenspielerweg )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement