Üzenetek megjelenítése

Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van.


Üzenetek - regun

Oldalak: 1 2 [3]
31
Segítségkérés / Finemta item-system
« Dátum: 2016. Május 19. - 22:34:02 »
Valaki ehez az inventory systemhez az itemek táblát nem tudná elküldeni vagy a felépitését leírni próbáltam kibogozni de nekem nem sikerült eddig még létrehozni a táblát.




mysql = exports.mysql
nyitva = {}
sqlUsername = exports.mysql:getMySQLUsername()
sqlPassword = exports.mysql:getMySQLPassword()
sqlDB = exports.mysql:getMySQLDBName()
sqlHost = exports.mysql:getMySQLHost()
sqlPort = exports.mysql:getMySQLPort()
handler = mysql_connect(sqlHost, sqlUsername, sqlPassword, sqlDB, sqlPort)
itemDB = dbConnect( \"sqlite\", \"itemek.db\" )
function checkMySQL()
if not (mysql_ping(handler)) then
handler = mysql_connect(sqlHost, sqlUsername, sqlPassword, sqlDB, sqlPort)
end
end
setTimer(checkMySQL, 300000, 0)
function closeMySQL()
if (handler) then
mysql_close(handler)
handler = nil
end
local players = getElementsByType(\"player\")
for k,v in ipairs(players) do
--   saveItems(v)
takeAllWeapons ( v )
setPedWeaponSlot ( v, 0 )
setElementData(v, \"taplalkozas\", nil)
end
local veh = getElementsByType ( \"vehicle\" )
for k,v in ipairs(veh) do
setElementData(v, \"nyitva\", false)
if getElementData(v, \"fve\") then
setElementData(v, \"fve\", false)
end
end
local objs = getElementsByType(\"object\")
for k,v in ipairs(objs) do
if (getElementData(v, \"itemID\")==60) then
   setElementData(v, \"nyitva\", false)
   if getElementData(v, \"fve\") then
   setElementData(v, \"fve\", false)
   end
end
end
end
addEventHandler(\"onResourceStop\", getResourceRootElement(getThisResource()), closeMySQL)
function saveIiitem(player, cmd)
if (exports.global:isPlayerFoFoAdmin(player)) then
local players = getElementsByType(\"player\")
for k,v in ipairs(players) do
saveItems(v)
takeAllWeapons ( v )
setPedWeaponSlot ( v, 0 )
end
outputChatBox(\"Játékos inventoryk elmentve.\", player)
--   saveObjsk(player)
end
end
addCommandHandler(\"itemsave\", saveIiitem)
--[[function saveVehsk(player)
local vehs = getElementsByType(\"vehicle\")
for k,v in ipairs(vehs) do
if (getVehicleType(getElementModel(v))==\"Automobile\") or (getVehicleType(getElementModel(v))==\"Helicopter\") then
   if (getElementData(v, \"dbid\")>0) then
      saveItems(v)
   end
end
end
outputChatBox(\"Jármű inventoryk elmentve.\", player)
--saveObjsk()
end
function saveObjsk(player)
local objs = getElementsByType(\"object\")
for k,v in ipairs(objs) do
if (getElementData(v, \"itemID\")==60) then
   saveItems(v)
end
end
outputChatBox(\"Széf inventoryk elmentve.\", player)
end
--]]
function getID(element)
if getElementType(element) == \"player\" then
return getElementData(element, \"dbid\")
elseif getElementType(element) == \"vehicle\" then
return getElementData(element, \"dbid\")
elseif getElementParent(getElementParent(element)) == getResourceRootElement() and getElementData(element, \"itemID\")~=60 then
return getElementData(element, \"id\")
elseif getElementType(element) == \"object\" then
return getElementDimension(element)
else
return 0
end
end
function getType(element)
if getElementType(element) == \"player\" then
return \"jatekos\"
elseif getElementType(element) == \"vehicle\" then
return \"auto\"
elseif getElementParent(getElementParent(element)) == getResourceRootElement() and getElementData(element, \"itemID\")~=60 then
return \"fold\"
elseif getElementType(element) == \"object\" then
return \"szef\"
else
return \"jatekos\"
end
end
function loadItemForElement( element )
if not isElement( element ) then
return false, \"Hiba\"
else
for i=1, 36 do
   local theItem = tonumber(getElementData(element, \"itemslot\"..i)) or 0
   if theItem > 0 then
      setElementData(element, \"itemslot\"..i, 0)
      setElementData(element, \"itemvalue\"..i..theItem, 0)
      setElementData(element, \"itemdarab\"..i..theItem, 0)
      setElementData(element, \"dbid\"..i, 0)
   end
end
local elementID = tonumber(getID( element )) or 0
if elementID == 0 then return end
local dbMuv = dbQuery( itemDB, \"SELECT * FROM itemek WHERE elementID = \" .. elementID  .. \" AND elementtype = \'\".. getType(element) ..\"\' ORDER BY `id` ASC\" )
local result = dbPoll(dbMuv, -1)
if (#result>0) then
for _, row in ipairs ( result ) do
   id = tonumber(row[\"id\"])
   slot = tonumber(row[\"slot\"])
   item = tonumber(row[\"itemID\"])
   db = tonumber(row[\"db\"])
   itemValue = tonumber(row[\"itemValue\"])
   setElementData(element, \"mysqlid\"..slot, id)
   if item == 48 and getType(element) == \"jatekos\" then
      setElementData(element, \"taska\", true)
   end
   setElementData(element, \"itemslot\"..slot, item)
   setElementData(element, \"itemdarab\"..slot..item, db)
   setElementData(element, \"dbid\"..slot..item, id)
   setElementData(element, \"itemvalue\"..slot..item, itemValue)
    end
end
end
end
addEvent(\"lifele\", true)
addEventHandler(\"lifele\", getRootElement(), loadItemForElement)
--[[function saveItems(player)
local owner = tonumber(getElementData(player, \"dbid\")) or 0
local etype = getType(player)
if (etype==\"szef\") then
owner = getID(player)
end
for i=1,36 do
local item = tonumber(getElementData(player, \"itemslot\"..i)) or 0
if item > 0 then
   local time = getRealTime()
   local itemvalue = tonumber(getElementData(player, \"itemvalue\"..i..item)) or 0
   local darabszam = tonumber(getElementData(player, \"itemdarab\"..i..item)) or 0
   local QUERY = dbQuery(itemDB, \"SELECT * FROM itemek WHERE elementID = \'\".. owner ..\"\' AND elementtype = \'\".. etype ..\"\' AND slot = \'\".. i ..\"\'\")
   local result = dbPoll(QUERY, -1)
   if (#result>0) then
   for _, row in ipairs ( result ) do
--   if QUERY then
      local itemID = row[\"itemID\"]
      local itemValue2 = row[\"itemValue\"]
      local db = row[\"db\"]
      if (not item == itemID) or (not darabszam == db) or (not itemvalue == itemValue2) then
         dbExec(itemDB, \"DELETE FROM itemek WHERE elementID = \'\".. owner ..\"\' AND elementtype = \'\".. etype ..\"\' AND slot = \'\".. i ..\"\'\")
         dbExec(itemDB, \"INSERT INTO itemek (itemID, slot, elementID, itemValue, createDate, db, elementtype) VALUES (\"..item..\", \"..i..\", \"..owner..\", \"..itemvalue..\", \'\"..time.year+1900 ..\"-\"..time.month+1 ..\"-\"..time.monthday..\" \"..time.hour..\":\"..time.minute..\":\"..time.second..\"\', \"..darabszam..\", \'\"..etype..\"\')\")
      else
         dbExec(itemDB, \"UPDATE itemek SET itemID = \'\".. item ..\"\', itemValue = \'\".. itemvalue ..\"\', db = \'\".. darabszam ..\"\' WHERE elementID = \'\".. owner ..\"\' AND elementtype = \'\".. etype ..\"\' AND slot = \'\".. i ..\"\'\")
      end
   end
   else
      --dbExec(itemDB, \"DELETE FROM itemek WHERE elementID = \".. owner ..\" AND elementtype = \'\".. etype ..\"\' AND slot = \".. i ..\"\")
      dbExec(itemDB, \"INSERT INTO itemek (itemID, slot, elementID, itemValue, createDate, db, elementtype) VALUES (\"..item..\", \"..i..\", \"..owner..\", \"..itemvalue..\", \'\"..time.year+1900 ..\"-\"..time.month+1 ..\"-\"..time.monthday..\" \"..time.hour..\":\"..time.minute..\":\"..time.second..\"\', \"..darabszam..\", \'\"..etype..\"\')\")
   end
else
   dbExec(itemDB, \"DELETE FROM itemek WHERE elementID = \'\".. owner ..\"\' AND elementtype = \'\".. etype ..\"\' AND slot = \'\".. i ..\"\'\")
end
end
end
addEvent(\"saveItems\",true)
addEventHandler(\"saveItems\", getRootElement(), saveItems)]]
function saveItems(player)
local owner = tonumber(getElementData(player, \"dbid\")) or 0
local etype = getType(player)
if (etype==\"szef\") then
owner = getID(player)
end
dbExec(itemDB, \"DELETE FROM itemek WHERE elementID = \'\".. owner ..\"\' AND elementtype = \'\".. etype ..\"\'\")
for i=1,36 do
local item = tonumber(getElementData(player, \"itemslot\"..i)) or 0
if item > 0 then
   local time = getRealTime()
   local itemvalue = tonumber(getElementData(player, \"itemvalue\"..i..item)) or 0
   local darabszam = tonumber(getElementData(player, \"itemdarab\"..i..item)) or 0
   dbExec(itemDB, \"INSERT INTO itemek (itemID, slot, elementID, itemValue, createDate, db, elementtype) VALUES (\"..item..\", \"..i..\", \"..owner..\", \"..itemvalue..\", \'\"..time.year+1900 ..\"-\"..time.month+1 ..\"-\"..time.monthday..\" \"..time.hour..\":\"..time.minute..\":\"..time.second..\"\', \"..darabszam..\", \'\"..etype..\"\')\")
end
end
end
addEvent(\"saveItems\",true)
addEventHandler(\"saveItems\", getRootElement(), saveItems)
function mozogs(element, regi, uj, id, ertek, darab, olusz)
if (olusz==1) then
dbExec(itemDB, \"UPDATE itemek SET `db`=`db`+1 WHERE slot=\'\".. tonumber(uj) ..\"\' AND elementID=\'\".. tonumber(getID(element)) ..\"\' AND elementtype=\'\".. getType(element) ..\"\'\")
dbExec(itemDB, \"UPDATE itemek SET `db`=`db`-1 WHERE slot=\'\".. tonumber(regi) ..\"\' AND elementID=\'\".. tonumber(getID(element)) ..\"\' AND elementtype=\'\".. getType(element) ..\"\'\")
elseif (olusz==2) then
dbExec(itemDB, \"INSERT INTO itemek (itemID, slot, itemValue, db, elementID, elementtype) VALUES (\"..tonumber(id)..\", \"..tonumber(uj)..\", \"..tonumber(ertek)..\", \"..tonumber(darab)..\", \"..tonumber(getID(element))..\", \'\"..getType(element)..\"\')\")
dbExec(itemDB, \"UPDATE itemek SET `db`=`db`-1 WHERE slot=\'\".. tonumber(regi) ..\"\' AND elementID=\'\".. tonumber(getID(element)) ..\"\' AND elementtype=\'\".. getType(element) ..\"\'\")
else
dbExec(itemDB, \"UPDATE itemek SET itemID=\'\".. tonumber(id) ..\"\', slot=\'\".. tonumber(uj) ..\"\', itemValue=\'\".. tonumber(ertek) ..\"\', db=\'\".. tonumber(darab) ..\"\' WHERE slot=\'\".. tonumber(regi) ..\"\' AND elementID=\'\".. tonumber(getID(element)) ..\"\' AND elementtype=\'\".. getType(element) ..\"\'\")
end
end
addEvent(\"mozogs\",true)
addEventHandler(\"mozogs\", getRootElement(), mozogs)
function fixnulVS(element, slot)
dbExec( itemDB,\"DELETE FROM itemek WHERE slot=\'\".. slot ..\"\' AND elementID=\'\".. tonumber(getID(element)) ..\"\' AND elementtype=\'\".. getType(element) ..\"\'\")
end
addEvent(\"fixnulVS\",true)
addEventHandler(\"fixnulVS\", getRootElement(), fixnulVS)
function giveItem(thePlayer, itemID, itemValue, darab)
if itemID and itemValue then
   local elementID = tonumber(getElementData(thePlayer, \"dbid\")) or 0
   local eTipus = getType(thePlayer)
   local newItem = tonumber(itemID)
   local darab = tonumber(darab)
   local time = getRealTime()
   if not darab then
      darab = 1
   end
   --[[if (eTipus==\"szef\") then
      elementID = getElementDimension(thePlayer)
   end--]]
   local newSlot, state = elsoSzabadSlot(thePlayer)
   if state == true then
      if elementID > 0 then
      --[[   local dbMuv = dbQuery(itemDB, \"INSERT INTO itemek (itemID, slot, elementID, itemValue, createDate, db, elementtype) VALUES (\"..itemID..\", \"..newSlot..\", \"..elementID..\", \"..itemValue..\", \'\"..time.year+1900 ..\"-\"..time.month+1 ..\"-\"..time.monthday..\" \"..time.hour..\":\"..time.minute..\":\"..time.second..\"\', \"..darab..\", \'\"..eTipus..\"\')\")
         local vmi, vmi2, insertid = dbPoll(dbMuv, -1)--]]
         setElementData(thePlayer, \"itemslot\"..newSlot, newItem)
         setElementData(thePlayer, \"itemdarab\"..newSlot..newItem, darab)
         setElementData(thePlayer, \"itemvalue\"..newSlot..newItem, itemValue)
         setElementData(thePlayer, \"dbid\"..newSlot, 0)
      end
   else
      return false, \"Sikertelen.\"
   end
   return true, \"Sikeres.\"
end
end
--addEvent(\"giveItem\",true)
--addEventHandler(\"giveItem\", getRootElement(), giveItem)
function giveItem2(thePlayer, itemID, itemValue, darab, egyeb, egyeb2, gomb)
if itemID and itemValue then
   local elementID = tonumber(getElementData(thePlayer, \"dbid\")) or 0
   local eTipus = getType(thePlayer)
   local newItem = tonumber(itemID)
   local darab = tonumber(darab)
   local time = getRealTime()
   if not darab then
      darab = 1
   end
   if (eTipus==\"szef\") then
      elementID = getElementDimension(thePlayer)
   end
   local newSlot, state = elsoSzabadSlot(thePlayer)
   if state == true then
      if elementID > 0 then
         if (eTipus~=\"jatekos\") then
         dbExec(itemDB, \"INSERT INTO itemek (itemID, slot, elementID, itemValue, createDate, db, elementtype) VALUES (\"..itemID..\", \"..newSlot..\", \"..elementID..\", \"..itemValue..\", \'\"..time.year+1900 ..\"-\"..time.month+1 ..\"-\"..time.monthday..\" \"..time.hour..\":\"..time.minute..\":\"..time.second..\"\', \"..darab..\", \'\"..eTipus..\"\')\")
         end
         if (getType(egyeb)~=\"jatekos\") then
            if (gomb==\"mouse1\") then
               dbExec( itemDB,\"DELETE FROM itemek WHERE slot = \'\".. egyeb2 ..\"\' AND elementID = \'\".. tonumber(getID(egyeb)) ..\"\' AND elementtype = \'\" .. getType(egyeb) .. \"\'\")
            elseif (gomb==\"mouse2\") then
               dbExec( itemDB,\"UPDATE itemek SET `db`=`db`-1 WHERE slot = \'\".. egyeb2 ..\"\' AND elementID = \'\".. tonumber(getID(egyeb)) ..\"\' AND elementtype = \'\" .. getType(egyeb) .. \"\'\")
         --      dbExec( itemDB,\"UPDATE itemek SET `db`=`db`+1 WHERE slot = \'\".. newSlot ..\"\' AND elementID = \'\".. tonumber(getID(egyeb)) ..\"\' AND elementtype = \'\" .. getType(egyeb) .. \"\'\")
            end
         end
         setElementData(thePlayer, \"itemslot\"..newSlot, newItem)
         setElementData(thePlayer, \"itemdarab\"..newSlot..newItem, darab)
         setElementData(thePlayer, \"itemvalue\"..newSlot..newItem, itemValue)
         setElementData(thePlayer, \"dbid\"..newSlot, 0)
      end
   else
      return false, \"Sikertelen.\"
   end
   return true, \"Sikeres.\"
end
end
addEvent(\"giveItem2\",true)
addEventHandler(\"giveItem2\", getRootElement(), giveItem2)
function vilagItemek()
local dbMuv = dbQuery( itemDB, \"SELECT * FROM itemek WHERE elementtype = \'fold\'\" )
local result = dbPoll(dbMuv, -1)
if (#result>0) then
for _, row in ipairs ( result ) do
      elementtype = tostring(row[\"elementtype\"])
      id = tonumber(row[\"id\"])
      itemID = tonumber(row[\"itemID\"])
      itemValue = tonumber(row[\"itemValue\"])
      x,y,z,r = tonumber(row[\"wX\"]), tonumber(row[\"wY\"]), tonumber(row[\"wZ\"]), tonumber(row[\"wRot\"])
      int = tonumber(row[\"wInterior\"]) or 0
      dim = tonumber(row[\"wDimension\"]) or 0
      db = tonumber(row[\"db\"])
      if elementtype == \"fold\" then
         local object = createObject(getItemModel(itemID), x,y,z,r,0,0)
         if object then
            setElementInterior(object, int)
            setElementDimension(object, dim)
            setElementData(object, \"dbid\", id)
            setElementData(object, \"db\", db)
            setElementData(object, \"itemID\", itemID)
            setElementData(object, \"itemValue\", itemValue)
         end
      end
end
end
end
function dropItem(item, x,y,z,int,dim,slot,owner,plus,gmb)
if item and item > 0 then
if item == 60 then
   triggerClientEvent(owner, \"bugOff\", owner)
   if (hasItem(owner, 4, dim) or hasItem(owner, 5, dim)) then
      if isSafeInDimension(dim) then
         outputChatBox(\"Egy interioron belül csak 1 db széfet lehet lerakni!\", owner, 255,0,0)
         return
      end
      z = z + 0.5
   else
      outputChatBox(\"Nincs kulcsod ehhez a lakáshoz (vagy nem vagy lakásban).\", owner, 255,0,0)
      return
   end
elseif item == 208 then   
   triggerClientEvent(owner, \"bugOff\", owner)
   if (hasItem(owner, 4, dim) or hasItem(owner, 5, dim)) then
      if (exports[\"fine-drog\"]:leheteCserep(dim)) then
         outputChatBox(\"Egy interioron belül maximum 30 db cserepet lehet lerakni!\", owner, 255,0,0)
         return
      end
      z = z + 0.15
   else
      outputChatBox(\"Nincs kulcsod ehhez a lakáshoz (vagy nem vagy lakásban).\", owner, 255,0,0)
      return
   end
elseif item == 112 then
   triggerClientEvent(owner, \"bugOff\", owner)
   if (exports.global:isPlayerFoAdmin(owner)) then
      z = z + 0.4
   else
      return
   end
elseif tonumber(getElementData(owner, \"itemvalue\"..slot..item)) == 53 then
   triggerClientEvent(source, \"bugOff\", source)
   takeItem(owner, item, 53)
   dbExec( itemDB, \"DELETE FROM itemek WHERE elementID = \'\".. tonumber(getID(owner)) ..\"\' AND elementtype = \'\".. getType(owner) ..\"\' AND slot = \'\".. slot ..\"\'\" )
   return
end
local tulaj = owner
local owner = tonumber(getID(owner)) or 0
local itemDarab = tonumber(getElementData(tulaj, \"itemdarab\"..slot..item)) or 0
--   local dbid = tonumber(getElementData(tulaj, \"dbid\"..slot..item)) or 0
local itemValue = tonumber(getElementData(tulaj, \"itemvalue\"..slot..item)) or 0
if (tonumber(plus)) and (tonumber(plus)==1) then
setElementData(tulaj, \"itemdarab\"..slot..item, itemDarab-1)
itemDarab = 1
else
setElementData(tulaj, \"itemslot\"..slot, 0)
setElementData(tulaj, \"itemdarab\"..slot..item, 0)
setElementData(tulaj, \"dbid\"..slot..item, 0)
setElementData(tulaj, \"itemvalue\"..slot..item, 0)
end
local rx, ry, rz = getItemRotInfo(item)
--mysql_query( handler, \"INSERT INTO itemek SET elementtype = \'fold\', itemID = \'\".. item ..\"\', itemValue = \'\".. itemValue ..\"\', wX = \'\".. x ..\"\', wY = \'\".. y ..\"\', wZ = \'\".. z ..\"\', wRot = \'0\', db = \'\".. itemDarab ..\"\', wCreateDate = NOW(), wInterior = \'\".. int ..\"\', wDimension = \'\".. dim ..\"\', elementID = \'0\'\" )
if (getType(tulaj)~=\"jatekos\") then
if (gmb==\"mouse2\") then
dbExec( itemDB, \"UPDATE itemek SET `db`=`db`-1 WHERE elementID = \'\".. owner ..\"\' AND elementtype = \'\".. getType(tulaj) ..\"\' AND slot = \'\".. slot ..\"\'\" )
else
dbExec( itemDB, \"DELETE FROM itemek WHERE elementID = \'\".. owner ..\"\' AND elementtype = \'\".. getType(tulaj) ..\"\' AND slot = \'\".. slot ..\"\'\" )
end
end
if (item==208) then
mysql_query(handler, \"INSERT INTO cserepek SET x=\'\" .. x .. \"\', y=\'\" .. y .. \"\', z=\'\" .. z .. \"\', intr=\'\" .. int .. \"\', dim=\'\" .. dim .. \"\', fajta=\'\" .. itemValue .. \"\', allapot=0\")
dbid = mysql_insert_id(handler)
triggerEvent(\"setCsTomb\", tulaj, dbid, itemValue, x, y, z, int, dim)
else
local time = getRealTime()
local dbMuv = dbQuery( itemDB, \"INSERT INTO itemek (elementtype, itemID, itemValue, wX, wY, wZ, wRot, db, wCreateDate, wInterior, wDimension, elementID) VALUES (\'fold\', \"..item..\", \"..itemValue..\", \"..x..\", \"..y..\", \"..z..\", 0, \"..itemDarab..\", \'\"..time.year+1900 ..\"-\"..time.month+1 ..\"-\"..time.monthday..\" \"..time.hour..\":\"..time.minute..\":\"..time.second..\"\', \"..int..\", \"..dim..\", 0)\")
--   mysql:query_insert_free(\"INSERT INTO itemek SET elementtype = \'fold\', itemID = \'\".. item ..\"\', itemValue = \'\".. itemValue ..\"\', wX = \'\".. x ..\"\', wY = \'\".. y ..\"\', wZ = \'\".. z ..\"\', wRot = \'0\', db = \'\".. itemDarab ..\"\', wCreateDate = NOW(), wInterior = \'\".. int ..\"\', wDimension = \'\".. dim ..\"\', elementID = \'0\'\")
local vmi, vmi2, dbid = dbPoll(dbMuv, -1)
--[[đ      else
setElementData(tulaj, \"itemslot\"..slot, 0)
setElementData(tulaj, \"itemdarab\"..slot..item, 0)
setElementData(tulaj, \"dbid\"..slot..item, 0)
setElementData(tulaj, \"itemvalue\"..slot..item, 0)
local rx, ry, rz = getItemRotInfo(item)
local idke = mysql:query_fetch_assoc(\"SELECT id FROM itemek WHERE elementID = \'\".. owner ..\"\' AND slot = \'\".. slot ..\"\'\" )
dbid = tonumber(idke.id)
mysql_query( handler, \"UPDATE itemek SET elementtype = \'fold\', itemID = \'\".. item ..\"\', wX = \'\".. x ..\"\', wY = \'\".. y ..\"\', wZ = \'\".. z ..\"\', wRot = \'0\', db = \'\".. itemDarab ..\"\', wCreateDate = NOW(), wInterior = \'\".. int ..\"\', wDimension = \'\".. dim ..\"\', elementID = \'0\' WHERE elementID = \'\".. owner ..\"\' AND slot = \'\".. slot ..\"\'\" )
--   mysql:query_free(\"UPDATE itemek SET elementtype = \'fold\', wX = \'\".. x ..\"\', wY = \'\".. y ..\"\', wZ = \'\".. z ..\"\', wRot = \'0\', db = \'\".. itemDarab ..\"\', wCreateDate = NOW(), wInterior = \'\".. int ..\"\', wDimension = \'\".. dim ..\"\', elementID = \'0\' WHERE elementID = \'\".. owner ..\"\' AND slot = \'\".. slot ..\"\'\")
end--]]
local object = createObject(getItemModel(item), x,y,z,rx,ry,rz)
if object then
   setElementInterior(object, int)
   setElementDimension(object, dim)
   setElementData(object, \"dbid\", dbid)
   setElementData(object, \"db\", itemDarab)
   setElementData(object, \"itemID\", item)
   setElementData(object, \"itemValue\", itemValue)
end
if (item==44) then
   borondle(source)
end
end
exports.global:sendLocalMeAction(source, \"eldobott valamit.\")
exports.global:applyAnimation(source, \"CARRY\", \"putdwn\", 500, false, false, true)
triggerClientEvent(source, \"bugOff\", source)
end
end
addEvent(\"dropItemS\",true)
addEventHandler(\"dropItemS\", getRootElement(), dropItem)
function felveszItem(player, element)
if isElement(element) then
local itemID = getElementData(element, \"itemID\")
local dbid = getElementData(element, \"dbid\")
local dbid2 = getElementData(player, \"dbid\")
local DB = getElementData(element, \"db\")
local itemValue = getElementData(element, \"itemValue\")
local newSlot, state = elsoSzabadSlot(player)
if state == true then
   destroyElement(element)
   setElementData(player, \"itemslot\"..newSlot, itemID)
   setElementData(player, \"itemdarab\"..newSlot..itemID, DB)
   setElementData(player, \"itemvalue\"..newSlot..itemID, itemValue)
   setElementData(player, \"dbid\"..newSlot..itemID, dbid)
   --mysql_query( handler, \"UPDATE itemek SET elementtype = \'jatekos\', elementID = \'\".. dbid2 ..\"\', slot = \'\".. newSlot ..\"\' WHERE id = \'\".. dbid ..\"\'\" )
   dbExec( itemDB,\"UPDATE itemek SET elementtype = \'jatekos\', elementID = \'\".. dbid2 ..\"\', slot = \'\".. newSlot ..\"\' WHERE id = \'\".. dbid ..\"\'\")
   exports.global:applyAnimation(source, \"CARRY\", \"liftup\", 600, false, true, true)
   exports.global:sendLocalMeAction(source, \"lehajol és felvesz valamit.\")
else
--   outputChatBox(\"Hiba.\", player, 255, 0, 0)
end
end
end
addEvent(\"felveszItem\",true)
addEventHandler(\"felveszItem\", getRootElement(), felveszItem)
function belepesNull(player)
local veh = getPedOccupiedVehicle(player)
for i=1, 36 do
setElementData(player, \"itemslot\"..i, 0)
if (veh) then
setElementData(veh, \"itemslot\"..i, 0)
end
end
end
--addCommandHandler(\"null\", belepesNull)
function shinvS(player, cmd, target)
if (exports.global:isPlayerAdmin(player)) then
local targetPlayer, targetPlayerName = exports.global:findPlayerByPartialNick(player, target)
if (targetPlayer) then
if (getElementData(targetPlayer, \"loggedin\")==1) then
   triggerClientEvent(player, \"shinv\", targetPlayer, targetPlayer)
end
end
end
end
addCommandHandler(\"showinv\", shinvS)
function kilepes(quitType)
if (pia[source]) then
destroyElement(pia[source])
pia[source] = nil
end
if (kaja[source]) then
destroyElement(kaja[source])
kaja[source] = nil
end
saveItems(source)
end
addEventHandler(\"onPlayerQuit\", getRootElement(), kilepes)
function getAllPlayers(res)
--[[đ   local veh = getElementsByType ( \"vehicle\" )
for k,v in ipairs(veh) do
loadItemForElement(v)
end
local objs = getElementsByType(\"object\")
for k,v in ipairs(objs) do
if (getElementData(v, \"itemID\")==60) then
   loadItemForElement(v)
end
end--]]
if (getResourceName(res)==\"item-system\") then
vilagItemek()
end
end
addEventHandler(\"onResourceStart\", getRootElement(getThisResource()), getAllPlayers)
function itemBetoltes(player)
setTimer(function()
loadItemForElement(player)
end, 5000, 1)
end
addEvent(\"itemBetoltes\", true)
addEventHandler(\"itemBetoltes\", getRootElement(), itemBetoltes)
function meFunkok(source, szoveg, bug)
exports.global:sendLocalMeAction(source, szoveg)
if not (bug) then
triggerClientEvent(source, \"bugOff\", source)
end
end
addEvent(\"meFunkok\", true)
addEventHandler(\"meFunkok\", getRootElement(), meFunkok)
function csomifix(source, jarmu, tipus)
if not (nyitva[jarmu]) then
nyitva[jarmu] = source
triggerClientEvent(source, \"nyitCsomi\", source, source, jarmu, tipus)
else
outputChatBox(\"#5e5e5e[#abababFineMTA#5e5e5e] #c3c3c3Egyszerre csak 1 ember nézhet bele ebbe.\", source, 0, 0, 0, true)
end
end
addEvent(\"csomifix\", true)
addEventHandler(\"csomifix\", getRootElement(), csomifix)
function csomiBezar(jarmu)
if (nyitva[jarmu]) then
nyitva[jarmu] = nil
end
end
addEvent(\"csomiBezar\", true)
addEventHandler(\"csomiBezar\", getRootElement(), csomiBezar)
function deleteAll( itemID, itemValue )
if itemID then
if itemValue then
   dbExec( itemDB, \"DELETE FROM itemek WHERE itemID = \" .. itemID .. \" AND itemValue = \'\" .. mysql_escape_string( handler, tostring( itemValue ) ) .. \"\'\" )
--         mysql_free_result( mysql_query( handler, \"DELETE FROM worlditems WHERE itemid = \" .. itemID .. \" AND itemvalue = \'\" .. mysql_escape_string( handler, tostring( itemValue ) ) .. \"\'\" ) )
   for key, value in pairs( getElementsByType( \"object\", getResourceRootElement( ) ) ) do
      if isElement( value ) then
         if getElementData( value, \"itemID\" ) == itemID and getElementData( value, \"itemValue\" ) == itemValue then
            destroyElement( value )
         end
      end
   end
local players = getElementsByType(\"player\")
for k,v in ipairs(players) do
for i=1, 36 do
   local item = tonumber(getElementData(v, \"itemslot\"..i)) or 0
   local itemVal = tonumber(getElementData(v, \"itemvalue\"..i..item)) or 0
   if item == itemID and itemVal == itemValue then
      setElementData(v, \"itemslot\"..i, 0)
      setElementData(v, \"itemdarab\"..i..item, 0)
      setElementData(v, \"itemvalue\"..i..item, 0)
      setElementData(v, \"dbid\"..i..item, 0)
   end
end
end
local veh = getElementsByType ( \"vehicle\" )
for k,v in ipairs(veh) do
if ((getVehicleType(v)==\"Automobile\") or (getVehicleType(v)==\"Helicopter\")) and (getElementData(v, \"dbid\")>0) then
for i=1, 36 do
   local item = tonumber(getElementData(v, \"itemslot\"..i)) or 0
   local itemVal = tonumber(getElementData(v, \"itemvalue\"..i..item)) or 0
   if item == itemID and itemVal == itemValue then
      setElementData(v, \"itemslot\"..i, 0)
      setElementData(v, \"itemdarab\"..i..item, 0)
      setElementData(v, \"itemvalue\"..i..item, 0)
      setElementData(v, \"dbid\"..i..item, 0)
   end
end
end
end
local objs = getElementsByType(\"object\")
for k,v in ipairs(objs) do
if (getElementData(v, \"itemID\")==60) then
for i=1, 36 do
   local item = tonumber(getElementData(v, \"itemslot\"..i)) or 0
   local itemVal = tonumber(getElementData(v, \"itemvalue\"..i..item)) or 0
   if item == itemID and itemVal == itemValue then
      setElementData(v, \"itemslot\"..i, 0)
      setElementData(v, \"itemdarab\"..i..item, 0)
      setElementData(v, \"itemvalue\"..i..item, 0)
      setElementData(v, \"dbid\"..i..item, 0)
   end
end
end
end
else
   dbExec( itemDB, \"DELETE FROM itemek WHERE itemID = \" .. itemID )
   --mysql_free_result( mysql_query( handler, \"DELETE FROM worlditems WHERE itemid = \" .. itemID ) )
   for key, value in pairs( getElementsByType( \"object\", getResourceRootElement( ) ) ) do
      if isElement( value ) then
         if getElementData( value, \"itemID\" ) == itemID then
            destroyElement( value )
         end
      end
   end
end
return true
else
return false
end
end
function delallszar(player, cmd)
if (exports.global:isPlayerTulaj(player)) then
dbExec( itemDB, \"DELETE FROM itemek WHERE itemID!=112 AND elementtype=\'fold\' AND wDimension=0 AND wInterior=0\")
for key, value in pairs( getElementsByType( \"object\", getResourceRootElement( ) ) ) do
if isElement( value ) then
   if getElementDimension(value) == 0 and getElementInterior(value) == 0 and getElementModel(value) ~= 1300 then
      destroyElement( value )
   end
end
end
outputChatBox(\"Az összes szar törölve!\", player, 255, 0, 0)
end
end
addCommandHandler(\"delallszar\", delallszar)
function updateItemValue(element, itemID, ujErtek)
for i=1, 36 do
local item = tonumber(getElementData(element, \"itemslot\"..i)) or 0
if item == itemID then
   local itemValue = tonumber(getElementData(element, \"itemvalue\"..i..item)) or 0
   if itemValue ~= ujErtek then
      setElementData(element, \"itemvalue\"..i..item, tonumber(ujErtek))
      dbExec( itemDB, \"UPDATE itemek SET itemValue = \'\".. tonumber(ujErtek) ..\"\' WHERE elementID = \'\".. getID(element) ..\"\' AND slot = \'\".. i ..\"\'\" )
      return true
   end
end
end
end
function getNearbyItems(thePlayer, commandName)
if (exports.global:isPlayerSuperAdmin(thePlayer)) then
local posX, posY, posZ = getElementPosition(thePlayer)
outputChatBox(\"Közeli itemek:\", thePlayer, 255, 126, 0)
local count = 0
for k, theObject in ipairs(getElementsByType(\"object\", getResourceRootElement())) do
   local dbid = getElementData(theObject, \"dbid\")
   if dbid then
      local x, y, z = getElementPosition(theObject)
      local distance = getDistanceBetweenPoints3D(posX, posY, posZ, x, y, z)
      if distance <= 10 and getElementDimension(theObject) == getElementDimension(thePlayer) and getElementInterior(theObject) == getElementInterior(thePlayer) then
         outputChatBox(\"   #\" .. dbid .. \": \" .. ( getItemName( getElementData(theObject, \"itemID\") ) or \"?\" ) .. \"(\" .. getElementData(theObject, \"itemID\") .. \"), ezzel az értékkel: \" .. tostring( getElementData(theObject, \"itemValue\") ), thePlayer, 255, 126, 0)
         count = count + 1
      end
   end
end
if (count==0) then
   outputChatBox(\"   Nincs találat.\", thePlayer, 255, 126, 0)
end
end
end
addCommandHandler(\"nearbyitems\", getNearbyItems, false, false)
function delItem(thePlayer, commandName, targetID)
if (exports.global:isPlayerSuperAdmin(thePlayer)) then
if not (targetID) then
   outputChatBox(\"SYNTAX: \" .. commandName .. \" [iD]\", thePlayer, 255, 194, 14)
else
   local object = nil
   targetID = tonumber( targetID )
   for key, value in ipairs(getElementsByType(\"object\", getResourceRootElement())) do
      local dbid = getElementData(value, \"dbid\")
      if dbid and dbid == targetID then
         object = value
         break
      end
   end
   if object then
      local id = getElementData(object, \"dbid\")
      if (id<0) then
         outputChatBox(\"Hiba. Kérdezd Peter-t ;)\")
         return
      end
      dbExec(itemDB, \"DELETE FROM itemek WHERE id=\'\" .. id .. \"\'\")
      outputChatBox(\"Item #\" .. id .. \" törölve.\", thePlayer)
      destroyElement(object)
   else
      outputChatBox(\"Hibás item ID.\", thePlayer, 255, 0, 0)
   end
end
end
end
addCommandHandler(\"delitem\", delItem, false, false)
function detNearbyItems(thePlayer, commandName)
if (exports.global:isPlayerFoAdmin(thePlayer)) then
local posX, posY, posZ = getElementPosition(thePlayer)
outputChatBox(\"Közeli itemek:\", thePlayer, 255, 126, 0)
local count = 0
for k, theObject in ipairs(getElementsByType(\"object\", getResourceRootElement())) do
   local dbid = getElementData(theObject, \"itemID\")
   if dbid~=60 and dbid~=112 then
      local x, y, z = getElementPosition(theObject)
      local distance = getDistanceBetweenPoints3D(posX, posY, posZ, x, y, z)
      if distance <= 10 and getElementDimension(theObject) == getElementDimension(thePlayer) and getElementInterior(theObject) == getElementInterior(thePlayer) then
         local id = getElementData(theObject, \"dbid\")
         dbExec(itemDB, \"DELETE FROM itemek WHERE id=\'\" .. id .. \"\'\")
         destroyElement(theObject)
         count = count + 1
      end
   end
end
outputChatBox( count .. \" item törölve.\", thePlayer, 255, 126, 0)
end
end
addCommandHandler(\"delnearbyitems\", detNearbyItems, false, false)
function kocsiTorlesCsomiFix()
if (getElementType(source) == \"vehicle\") then
local dbid = tonumber(getElementData(source, \"dbid\"))
dbExec(itemDB, \"DELETE FROM itemek WHERE elementID = \'\".. dbid ..\"\' AND elementtype = \'auto\'\")
end
end
addEventHandler(\"onElementDestroy\", root, kocsiTorlesCsomiFix)

32
Archívum / Kapu
« Dátum: 2015. December 19. - 10:24:14 »
ERROR: Couldn\'t find meta.xml file for resource \'kapu1\'
Loading of resource \'kapu1\' failed
it a meta.xml
 
<meta>  
    <script src=\"kapu1.lua\" type=\"server\"/>
</meta>

33
Archívum / Kapu
« Dátum: 2015. December 18. - 21:43:14 »
Az a gond hogy le se rakja az objectet.

34
Archívum / Kapu
« Dátum: 2015. December 18. - 16:50:56 »
Nem működik.

35
Archívum / Kapu
« Dátum: 2015. December 18. - 14:17:49 »
Valaki megmondaná ebben a srciptben mi a hiba.
 
local gate1 = createObject(985, -485.5, 562.900390625, 24.5, 0, 0, 10) 
function openGate1()
    moveObject(gate1, -485.5, 562.900390625, 18, 0, 0, 0)
end
addCommandHandler(\"nyit\", openGate1)
function closeGate1()
    moveObject(gate1, -485.5, 562.900390625, 24.5, 0, 0, 0)
end
addCommandHandler(\"zar\", closeGate1)

36
Archívum / Dayz Mód bug
« Dátum: 2015. Július 28. - 23:01:25 »
Az miért van a dayz módban hogy ha a kocsi vagy repülő bele esik a vízbe nem spawnol vissza ezt lehet javítani ?

37
Archívum / Kapu készités
« Dátum: 2015. Július 28. - 15:22:19 »
Hogy tudok automatikusan nyió és záró kaput készíteni valaki egy példát tudna adni .

38
Archívum / Ikon elhelyezés
« Dátum: 2015. Július 25. - 23:31:56 »
Azt hogy tudom beállítani hogy a GPS en csak bizonyos körön belül mutassa az ikonokat ne az összes ikont egyszerre ami a mappon van.

39
Archívum / Ikon elhelyezés
« Dátum: 2015. Július 24. - 18:14:18 »
Egyedi ikont lehet e használni és még azt szeretném kérdezni hogy sikerült megcsinálni az ikont a térképen a radaron is mutatja de a radaron egyszerre mutatta mindent.

40
Archívum / Ikon elhelyezés
« Dátum: 2015. Július 24. - 17:39:57 »
Idézetet írta: ᗩωєѕσмє date=1437749997\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"56587\" data-ipsquote-contentclass=\"forums_Topic

link=topic=61379.msg552793#msg552793 date=1437748446]
Tessék! :)
Elnézést,de nem figyeltem, hogy ez MTA :( a warnomat kérem :)
 

warnomat kérem :)[/quote]
Ha admin lennék, akkor téged ezért Instant bannolnálak :D


Te mártír  :confused:
 
[/quote]
Egy példát tudsz adni pl az egyik kórházhoz egy ikont?

41
Archívum / Ikon elhelyezés
« Dátum: 2015. Július 24. - 16:28:26 »
Hogyan tudnék a térképre ikonokat elhelyezni pl kórház ?

42
Segítségkérés / Itt kérdezz warningot/error -t!
« Dátum: 2015. Július 12. - 11:18:53 »
PPC_Common.inc
 
SendAdminText(playerid, command[], text[])

 
PPC_Dialogs.inc
 
case 10: SetSpawnInfo(playerid, 0, GetPlayerSkin(playerid), 2612.5574,10.8203,182.0162,0,0,0,0,0,0);

 
PPC_PlayerCommands.inc
 
format(OptionsList, sizeof(OptionsList), \"%sHáz nevének megváltoztatása\\n\", OptionsList);
ShowPlayerDialog(playerid, DialogRescue, DIALOG_STYLE_LIST, \"Choose trucker spawn point:\", \"Fallen Tree Depó\\r\\nFlint Trucking Depó\\r\\nLVA Freight Depó\\r\\nDoherty Depó\\r\\nEl Corona Depó\\r\\nLas Payasdas Depó\\r\\nBánya\\r\\nShady Creek Depó\\r\\nLV szigeti depó\\r\\nLs dokkoki depó\\r\\Kacc depó\", \"Spawn\", \"Cancel\");

43
Segítségkérés / Itt kérdezz warningot/error -t!
« Dátum: 2015. Július 11. - 10:30:47 »
Megpróbáltam átkonvertálni ezt a módot és 6 errort dobot valaki tudná javitani.
\\pawno\\include\\PPC_Common.inc(137) : warning 203: symbol is never used: \"text\"
\\pawno\\include\\PPC_Common.inc(137) : warning 203: symbol is never used: \"command\"
\\pawno\\include\\PPC_Dialogs.inc(113) : warning 202: number of arguments does not match definition
\\pawno\\include\\PPC_PlayerCommands.inc(410) : warning 217: loose indentation
\\pawno\\include\\PPC_PlayerCommands.inc(1252) : error 027: invalid character constant
 
// Make sure you don\'t get warnings about tabsize
#pragma tabsize 0
 
// ********************************************************************************************************************
// Set default gamemode name
// ********************************************************************************************************************
#define GameModeName            \"[HUN]Fuvar 1000-rel:)\"
// ********************************************************************************************************************
// ********************************************************************************************************************
 
// Include default files
#include <a_samp>
#include <zcmd>
#include <dutils>
#include <sscanf2>
#include <streamer>
// Include all define-statements and custom-type declarations and the arrays which use them
// These files need to be included before the functions get included, because the functions use the defines, custom types and the arrays
// Also include the defined loads (for truckers, military, mafia, ...) and locations arrays
#include <PPC_DefTexts>
#include <PPC_ServerSettings>
#include <PPC_Defines>
#include <PPC_DefLocations>
#include <PPC_DefLoads>
#include <PPC_DefCars>
#include <PPC_DefPlanes>
#include <PPC_DefTrailers>
#include <PPC_DefBuyableVehicles>
// Include functions for this gamemode
#include <PPC_Common>
#include <PPC_Housing>
#include <PPC_Business>
#include <PPC_GameModeInit>
#include <PPC_FileOperations>
#include <PPC_Speedometer>
#include <PPC_MissionsTrucking>
#include <PPC_MissionsBus>
#include <PPC_MissionsPilot>
#include <PPC_MissionsPolice>
#include <PPC_MissionsMafia>
#include <PPC_MissionsAssistance>
#include <PPC_MissionsCourier>
#include <PPC_MissionsRoadworker>
#include <PPC_Convoys>
#include <PPC_Dialogs>
#include <PPC_PlayerCommands>
#include <PPC_Toll>
 
// The main function (used only once when the server loads)
main()
{
// Print some standard lines to the server\'s console
print(\"\\n----------------------------------\");
print(GameModeName);
print(\"----------------------------------\\n\");
}
 
// This callback gets called when the server initializes the gamemode
public OnGameModeInit()
{
new HostCommand[128];
// Change the hostname
format(HostCommand, 128, \"[HUN]-->*Kamionosok és Rendőrök*<--\", GameModeName);
SendRconCommand(HostCommand);
SetGameModeText(GameModeName); // Set the Mode of the gamemode, which appears in the list of servers
GameModeInit_VehiclesPickups(); // Add all static vehicles and pickups when the server starts that are required (also load the houses)
GameModeInit_Classes(); // Add character models to the class-selection (without weapons)
Convoys_Init(); // Setup textdraws and default data for convoys
ShowPlayerMarkers(1); // Show players on the entire map (and on the radar)
ShowNameTags(1); // Show player names (and health) above their head
ManualVehicleEngineAndLights(); // Let the server control the vehicle\'s engine and lights
EnableStuntBonusForAll(0); // Disable stunt bonus for all players
DisableInteriorEnterExits(); // Removes all building-entrances in the game
UsePlayerPedAnims(); // Use CJ\'s walking animation
// Start the timer that will show timed messages every 2 minutes
SetTimer(\"Timer_TimedMessages\", 1000 * 60 * 2, true);
// Start the timer that will show a random bonus mission for truckers every 5 minutes
SetTimer(\"ShowRandomBonusMission\", 1000 * 60 * 5, true);
// Start the timer that checks the toll-gates
SetTimer(\"Toll\", 1000, true);
// Fix the bugged houses (after fixing the houses, you can remove this line, as it\'s not needed anymore)
FixHouses();
return 1;
}
 
// This callback gets called when a player connects to the server
public OnPlayerConnect(playerid)
{
// Always allow NPC\'s to login without password or account
if (IsPlayerNPC(playerid))
return 1;
// Setup local variables
new Name[MAX_PLAYER_NAME], NewPlayerMsg[128], HouseID;
// Setup a PVar to allow cross-script money-transfers (only from filterscript to this mainscript) and scorepoints
SetPVarInt(playerid, \"PVarMoney\", 0);
SetPVarInt(playerid, \"PVarScore\", 0);
// Get the playername
GetPlayerName(playerid, Name, sizeof(Name));
// Also store this name for the player
GetPlayerName(playerid, APlayerData[playerid][PlayerName], 24);
// Send a message to all players to let them know somebody else joined the server
format(NewPlayerMsg, 128, TXT_PlayerJoinedServer, Name, playerid);
SendClientMessageToAll(0xFFFFFFFF, NewPlayerMsg);
// Try to load the player\'s datafile (\"PlayerFile_Load\" returns \"1\" is the file has been read, \"0\" when the file cannot be read)
if (PlayerFile_Load(playerid) == 1)
{
// Check if the player is still banned
if (APlayerData[playerid][banTime] < gettime()) // Player ban-time is passed
   ShowPlayerDialog(playerid, DialogLogin, DIALOG_STYLE_INPUT, TXT_DialogLoginTitle, TXT_DialogLoginMsg, TXT_DialogLoginButton1, TXT_DialogButtonCancel);
else // Player is still banned
{
   ShowRemainingBanTime(playerid); // Show the remaining ban-time to the player is days, hours, minutes, seconds
   Kick(playerid); // Kick the player
}
}
else
ShowPlayerDialog(playerid, DialogRegister, DIALOG_STYLE_INPUT, TXT_DialogRegisterTitle, TXT_DialogRegisterMsg, TXT_DialogRegisterButton1, TXT_DialogButtonCancel);
// The houses have been loaded but not the cars, so load all vehicles assigned to the player\'s houses
for (new HouseSlot; HouseSlot < MAX_HOUSESPERPLAYER; HouseSlot++)
{
    // Get the HouseID from this slot
    HouseID = APlayerData[playerid][Houses][HouseSlot];
    // Check if there is a house in this slot
if (HouseID != 0)
    HouseFile_Load(HouseID, true); // Load the cars of the house
}
// Speedometer setup
Speedometer_Setup(playerid);
// MissionText TextDraw setup
APlayerData[playerid][MissionText] = TextDrawCreate(320.0, 430.0, \" \"); // Setup the missiontext at the bottom of the screen
TextDrawAlignment(APlayerData[playerid][MissionText], 2); // Align the missiontext to the center
TextDrawUseBox(APlayerData[playerid][MissionText], 1); // Set the missiontext to display inside a box
TextDrawBoxColor(APlayerData[playerid][MissionText], 0x00000066); // Set the box color of the missiontext
// Display a message if the player hasn\'t accepted the rules yet
if (APlayerData[playerid][RulesRead] == false)
    SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Szerver szabályzat {FFFF00}/rules{FF0000}Parancs\");
return 1;
}
 
// This function shows the player how long his ban still is when he tries to login (in days, hours, minutes, seconds)
ShowRemainingBanTime(playerid)
{
// Setup local variables
new TotalBanTime, Days, Hours, Minutes, Seconds, Msg[128];
// Get the total ban-time
TotalBanTime = APlayerData[playerid][banTime] - gettime();
// Calculate days
if (TotalBanTime >= 86400)
{
Days = TotalBanTime / 86400;
TotalBanTime = TotalBanTime - (Days * 86400);
}
// Calculate hours
if (TotalBanTime >= 3600)
{
Hours = TotalBanTime / 3600;
TotalBanTime = TotalBanTime - (Hours * 3600);
}
// Calculate minutes
if (TotalBanTime >= 60)
{
Minutes = TotalBanTime / 60;
TotalBanTime = TotalBanTime - (Minutes * 60);
}
// Calculate seconds
Seconds = TotalBanTime;
// Display the remaining ban-time for this player
SendClientMessage(playerid, 0xFFFFFFFF, TXT_StillBanned);
format(Msg, 128, TXT_BannedDuration, Days, Hours, Minutes, Seconds);
SendClientMessage(playerid, 0xFFFFFFFF, Msg);
}
 
// This callback gets called when a player disconnects from the server
public OnPlayerDisconnect(playerid, reason)
{
// Always allow NPC\'s to logout without password or account
if (IsPlayerNPC(playerid))
return 1;
// Setup local variables
new Name[24], Msg[128], HouseID;
// Get the playername
GetPlayerName(playerid, Name, sizeof(Name));
// Stop spectate mode for all players who are spectating this player
for (new i; i < MAX_PLAYERS; i++)
    if (IsPlayerConnected(i)) // Check if the player is connected
        if (GetPlayerState(i) == PLAYER_STATE_SPECTATING) // Check if this player is spectating somebody
            if (APlayerData[spectateID] == playerid) // Check if this player is spectating me
         {
         TogglePlayerSpectating(i, 0); // Turn off spectate-mode
         APlayerData[spectateID] = INVALID_PLAYER_ID;
         APlayerData[spectateType] = ADMIN_SPEC_TYPE_NONE;
         SendClientMessage(i, 0xFFFFFFFF, \"{FF0000}A játékos kilépet a spec befejezödöt\");
      }
// Send a message to all players to let them know somebody else joined the server
format(Msg, 128, TXT_PlayerLeftServer, Name, playerid);
SendClientMessageToAll(0xFFFFFFFF, Msg);
// If the player entered a proper password (the player has an account)
if (strlen(APlayerData[playerid][PlayerPassword]) != 0)
{
    // Save the player data and his houses
PlayerFile_Save(playerid);
}
// Stop any job that may have started (this also clears all mission data)
switch (APlayerData[playerid][PlayerClass])
{
case ClassTruckDriver: Trucker_EndJob(playerid); // Stop any trucker job
case ClassBusDriver: BusDriver_EndJob(playerid); // Stop any busdriver job
case ClassPilot: Pilot_EndJob(playerid); // Stop any pilot job
case ClassPolice: Police_EndJob(playerid); // Stop any police job
case ClassMafia: Mafia_EndJob(playerid); // Stop any mafia job
case ClassAssistance: Assistance_EndJob(playerid);
case ClassRoadWorker: Roadworker_EndJob(playerid);
}
// If the player is part of a convoy, kick him from it
Convoy_Leave(playerid);
// Unload all the player\'s house-vehicles to make room for other player\'s vehicles
for (new HouseSlot; HouseSlot < MAX_HOUSESPERPLAYER; HouseSlot++)
{
    // Get the HouseID from this slot
    HouseID = APlayerData[playerid][Houses][HouseSlot];
    // Check if there is a house in this slot
if (HouseID != 0)
{
    // Unload the cars of the house
    House_RemoveVehicles(HouseID);
   // Set the house so it cannot be entered by anyone (close the house)
   AHouseData[HouseID][HouseOpened] = false;
}
}
// Clear the data in the APlayerData array to make sure the next player with the same id doesn\'t hold wrong data
APlayerData[playerid][spectateID] = -1;
APlayerData[playerid][spectateVehicle] = -1;
APlayerData[playerid][spectateType] = ADMIN_SPEC_TYPE_NONE;
APlayerData[playerid][LoggedIn] = false;
APlayerData[playerid][AssistanceNeeded] = false;
APlayerData[playerid][PlayerPassword] = 0;
APlayerData[playerid][PlayerLevel] = 0;
APlayerData[playerid][PlayerJailed] = 0;
APlayerData[playerid][PlayerFrozen] = 0; // Clearing this variable automatically kills the frozentimer
APlayerData[playerid][bans] = 0;
APlayerData[playerid][banTime] = 0;
APlayerData[playerid][Muted] = false;
APlayerData[playerid][RulesRead] = false;
APlayerData[playerid][AutoReportTime] = 0;
APlayerData[playerid][TruckerLicense] = 0;
APlayerData[playerid][busLicense] = 0;
APlayerData[playerid][PlayerClass] = 0;
APlayerData[playerid][Warnings] = 0;
APlayerData[playerid][PlayerMoney] = 0;
APlayerData[playerid][PlayerScore] = 0;
for (new HouseSlot; HouseSlot < MAX_HOUSESPERPLAYER; HouseSlot++)
APlayerData[playerid][Houses][HouseSlot] = 0;
for (new BusSlot; BusSlot < MAX_BUSINESSPERPLAYER; BusSlot++)
APlayerData[playerid][business][busSlot] = 0;
APlayerData[playerid][CurrentHouse] = 0;
// Clear bank account info
APlayerData[playerid][bankPassword] = 0;
APlayerData[playerid][bankLoggedIn] = false;
APlayerData[playerid][bankMoney] = 0;
// Clear stats
APlayerData[playerid][statsTruckerJobs] = 0;
APlayerData[playerid][statsConvoyJobs] = 0;
APlayerData[playerid][statsBusDriverJobs] = 0;
APlayerData[playerid][statsPilotJobs] = 0;
APlayerData[playerid][statsMafiaJobs] = 0;
APlayerData[playerid][statsMafiaStolen] = 0;
APlayerData[playerid][statsPoliceFined] = 0;
APlayerData[playerid][statsPoliceJailed] = 0;
APlayerData[playerid][statsCourierJobs] = 0;
APlayerData[playerid][statsRoadworkerJobs] = 0;
APlayerData[playerid][statsAssistance] = 0;
APlayerData[playerid][statsMetersDriven] = 0.0;
// Clear police warnings
APlayerData[playerid][PoliceCanJailMe] = false;
APlayerData[playerid][PoliceWarnedMe] = false;
APlayerData[playerid][Value_PoliceCanJailMe] = 0;
// Make sure the jailtimer has been destroyed
KillTimer(APlayerData[playerid][PlayerJailedTimer]);
KillTimer(APlayerData[playerid][Timer_PoliceCanJailMe]);
// Destroy the speedometer TextDraw for this player and the timer, also set the speed to 0
Speedometer_Cleanup(playerid);
// Also destroy the missiontext TextDraw for this player
TextDrawDestroy(APlayerData[playerid][MissionText]);
// Destroy a rented vehicle is the player had any
if (APlayerData[playerid][RentedVehicleID] != 0)
{
// Clear the data for the already rented vehicle
AVehicleData[APlayerData[playerid][RentedVehicleID]][Model] = 0;
AVehicleData[APlayerData[playerid][RentedVehicleID]][Fuel] = 0;
AVehicleData[APlayerData[playerid][RentedVehicleID]][Owned] = false;
AVehicleData[APlayerData[playerid][RentedVehicleID]][Owner] = 0;
AVehicleData[APlayerData[playerid][RentedVehicleID]][PaintJob] = 0;
for (new j; j < 14; j++)
{
   AVehicleData[APlayerData[playerid][RentedVehicleID]][Components][j] = 0;
}
// Destroy the vehicle
DestroyVehicle(APlayerData[playerid][RentedVehicleID]);
// Clear the RentedVehicleID
APlayerData[playerid][RentedVehicleID] = 0;
}
return 1;
}
 
// This callback gets called whenever a player uses the chat-box
public OnPlayerText(playerid, text[])
{
// Block the player\'s text if he has been muted
    if (APlayerData[playerid][Muted] == true)
{
// Let the player know he\'s still muted
SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Mutolva vagy\");
// Don\'t allow his text to be sent to the chatbox
return 0;
}
    return 1;
}
 
// This callback gets called when a player interacts with a dialog
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
// Select the proper dialog to process
switch (dialogid)
{
case DialogRegister: Dialog_Register(playerid, response, inputtext); // The \"Register\"-dialog
case DialogLogin: Dialog_Login(playerid, response, inputtext); // The \"Login\"-dialog
case DialogStatsOtherPlayer: Dialog_StatsOtherPlayer(playerid, response, listitem);
case DialogStatsHouse: Dialog_StatsHouse(playerid, response, listitem);
case DialogStatsGoHouse: Dialog_StatsGoHouse(playerid, response, listitem);
case DialogStatsGoBusiness: Dialog_StatsGoBusiness(playerid, response, listitem);
case DialogRescue: Dialog_Rescue(playerid, response, listitem); // The rescue-dialog
case DialogBuyLicenses: Dialog_BuyLicenses(playerid, response, listitem); // The license-dialog (allows the player to buy trucker/busdriver licenses)
case DialogRules: Dialog_Rules(playerid, response);
case DialogTruckerJobMethod: Dialog_TruckerSelectJobMethod(playerid, response, listitem); // The work-dialog for truckers (shows the loads he can carry and lets the player choose the load)
case DialogTruckerSelectLoad: Dialog_TruckerSelectLoad(playerid, response, listitem); // The load-selection dialog for truckers (shows the startlocations for the selected load and let the player choose his startlocation)
case DialogTruckerStartLoc: Dialog_TruckerSelectStartLoc(playerid, response, listitem); // The start-location dialog for truckers (shows the endlocations for the selected load and let the player choose his endlocation)
case DialogTruckerEndLoc: Dialog_TruckerSelectEndLoc(playerid, response, listitem); // The end-location dialog for truckers (processes the selected endlocation and starts the job)
case DialogBusJobMethod: Dialog_BusSelectJobMethod(playerid, response, listitem); // The work-dialog for busdrivers (process the options to choose own busroute or auto-assigned busroute)
case DialogBusSelectRoute: Dialog_BusSelectRoute(playerid, response, listitem); // Choose the busroute and start the job
case DialogCourierSelectQuant: Dialog_CourierSelectQuant(playerid, response, listitem);
case DialogBike: Dialog_Bike(playerid, response, listitem); // The bike-dialog
case DialogCar: Dialog_Car(playerid, response, listitem); // The car-dialog (which uses a split dialog structure)
case DialogPlane: Dialog_Plane(playerid, response, listitem); // The plane-dialog (which uses a split dialog structure)
case DialogTrailer: Dialog_Trailer(playerid, response, listitem); // The trailer-dialog (which uses a split dialog structure)
case DialogBoat: Dialog_Boat(playerid, response, listitem); // The boat-dialog
case DialogRentCarClass: Dialog_RentProcessClass(playerid, response, listitem); // The player chose a vehicleclass from where he can rent a vehicle
case DialogRentCar: Dialog_RentCar(playerid, response, listitem); // The player chose a vehicle from the list of vehicles from the vehicleclass he chose before
case DialogPlayerCommands: Dialog_PlayerCommands(playerid, response, listitem); // Displays all commands in a split-dialog structure
case DialogPrimaryCarColor: Dialog_PrimaryCarColor(playerid, response, listitem);
case DialogSedundaryCarColor: Dialog_SedundaryCarColor(playerid, response, listitem);
case DialogWeather: Dialog_Weather(playerid, response, listitem); // The weather dialog
case DialogCarOption: Dialog_CarOption(playerid, response, listitem); // The caroption dialog
case DialogSelectConvoy: Dialog_SelectConvoy(playerid, response, listitem);
case DialogHouseMenu: Dialog_HouseMenu(playerid, response, listitem); // Process the main housemenu
case DialogUpgradeHouse: Dialog_UpgradeHouse(playerid, response, listitem); // Process the house-upgrade menu
case DialogGoHome: Dialog_GoHome(playerid, response, listitem); // Port to one of your houses
case DialogHouseNameChange: Dialog_ChangeHouseName(playerid, response, inputtext); // Change the name of your house
case DialogSellHouse: Dialog_SellHouse(playerid, response); // Sell the house
case DialogBuyCarClass: Dialog_BuyCarClass(playerid, response, listitem); // The player chose a vehicleclass from where he can buy a vehicle
case DialogBuyCar: Dialog_BuyCar(playerid, response, listitem); // The player chose a vehicle from the list of vehicles from the vehicleclass he chose before
case DialogSellCar: Dialog_SellCar(playerid, response, listitem);
case DialogBuyInsurance: Dialog_BuyInsurance(playerid, response);
case DialogGetCarSelectHouse: Dialog_GetCarSelectHouse(playerid, response, listitem);
case DialogGetCarSelectCar: Dialog_GetCarSelectCar(playerid, response, listitem);
case DialogUnclampVehicles: Dialog_UnclampVehicles(playerid, response);
case DialogCreateBusSelType: Dialog_CreateBusSelType(playerid, response, listitem);
case DialogBusinessMenu: Dialog_BusinessMenu(playerid, response, listitem);
case DialogGoBusiness: Dialog_GoBusiness(playerid, response, listitem);
case DialogBusinessNameChange: Dialog_ChangeBusinessName(playerid, response, inputtext); // Change the name of your business
case DialogSellBusiness: Dialog_SellBusiness(playerid, response); // Sell the business
case DialogBankPasswordRegister: Dialog_BankPasswordRegister(playerid, response, inputtext);
case DialogBankPasswordLogin: Dialog_BankPasswordLogin(playerid, response, inputtext);
case DialogBankOptions: Dialog_BankOptions(playerid, response, listitem);
case DialogBankDeposit: Dialog_BankDeposit(playerid, response, inputtext);
case DialogBankWithdraw: Dialog_BankWithdraw(playerid, response, inputtext);
case DialogBankTransferMoney: Dialog_BankTransferMoney(playerid, response, inputtext);
case DialogBankTransferName: Dialog_BankTransferName(playerid, response, inputtext);
case DialogBankCancel: Dialog_BankCancel(playerid, response);
case DialogHelpItemChosen: Dialog_HelpItemChosen(playerid, response, listitem);
case DialogHelpItem: Dialog_HelpItem(playerid, response);
case DialogOldPassword: Dialog_OldPassword(playerid, response, inputtext);
case DialogNewPassword: Dialog_NewPassword(playerid, response, inputtext);
case DialogConfirmPassword: Dialog_ConfirmPassword(playerid, response);
}
    return 1;
}
// this callback gets called when a player clicks on another player on the scoreboard
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
// Check if the player is an admin of at least level 1
if (APlayerData[playerid][PlayerLevel] >= 1)
{
// Setup local variables
new Name[24], DialogTitle[128], PlayerStatList[3000], PlayerIP[16], NumHouses, NumBusinesses;
// Construct the dialog-title
GetPlayerName(clickedplayerid, Name, sizeof(Name));
format(DialogTitle, 128, \"Statistics of player: %s\", Name);
// Add the IP of the player to the list
    GetPlayerIp(clickedplayerid, PlayerIP, sizeof(PlayerIP));
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Player-IP: {00FF00}%s\\n\", PlayerStatList, PlayerIP);
// Add the level of the player to the list
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Admin-level: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][PlayerLevel]);
// Add the class of the player to the list
switch(APlayerData[clickedplayerid][PlayerClass])
{
   case ClassTruckDriver: format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Class: {00FF00}Trucker\\n\", PlayerStatList);
   case ClassBusDriver: format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Class: {00FF00}Bus driver\\n\", PlayerStatList);
   case ClassPilot: format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Class: {00FF00}Pilot\\n\", PlayerStatList);
   case ClassPolice: format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Class: {00FF00}Police\\n\", PlayerStatList);
   case ClassMafia: format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Class: {00FF00}Mafia\\n\", PlayerStatList);
   case ClassCourier: format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Class: {00FF00}Courier\\n\", PlayerStatList);
   case ClassAssistance: format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Class: {00FF00}Assistance\\n\", PlayerStatList);
}
// Add money and score of the player to the list
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Money: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][PlayerMoney]);
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Score: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][PlayerScore]);
// Add wanted-level of the player to the list
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Wanted-level: {00FF00}%i\\n\", PlayerStatList, GetPlayerWantedLevel(clickedplayerid));
// Add truckerlicense and busdriver license of the player to the list
if (APlayerData[clickedplayerid][TruckerLicense] == 1)
   format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Trucker License: {00FF00}Yes\\n\", PlayerStatList);
else
   format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Trucker License: {00FF00}No\\n\", PlayerStatList);
if (APlayerData[clickedplayerid][busLicense] == 1)
   format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Bus License: {00FF00}Yes\\n\", PlayerStatList);
else
   format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Bus License: {00FF00}No\\n\", PlayerStatList);
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Completed trucker jobs: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsTruckerJobs]);
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Completed convoy jobs: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsConvoyJobs]);
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Completed busdriver jobs: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsBusDriverJobs]);
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Completed pilot jobs: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsPilotJobs]);
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Completed mafia jobs: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsMafiaJobs]);
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Stolen mafia-loads: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsMafiaStolen]);
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Fined players: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsPoliceFined]);
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Jailed players: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsPoliceJailed]);
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Completed courier jobs: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsCourierJobs]);
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Completed roadworker jobs: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsRoadworkerJobs]);
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Assisted players: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsAssistance]);
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Meters driven: {00FF00}%f\\n\", PlayerStatList, APlayerData[clickedplayerid][statsMetersDriven]);
// Count the number of houses/businesses that the player has and add them to the list
for (new i; i < MAX_HOUSESPERPLAYER; i++)
   if (APlayerData[clickedplayerid][Houses] != 0)
       NumHouses++;
for (new i; i < MAX_BUSINESSPERPLAYER; i++)
   if (APlayerData[clickedplayerid][business] != 0)
       NumBusinesses++;
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Houses: {00FF00}%i (double-click for stats)\\n\", PlayerStatList, NumHouses);
format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Businesses: {00FF00}%i (double-click for stats)\\n\", PlayerStatList, NumBusinesses);
// Store the player-id of the other player so the other dialogs can display his statistics further (houses, businesses, cars)
APlayerData[playerid][DialogOtherPlayer] = clickedplayerid;
// Show the statistics of the other player
ShowPlayerDialog(playerid, DialogStatsOtherPlayer, DIALOG_STYLE_LIST, DialogTitle, PlayerStatList, TXT_DialogButtonSelect, TXT_DialogButtonCancel); // Let the player buy a license
}
return 1;
}
 
// This callback gets called when a player picks up any pickup
public OnPlayerPickUpPickup(playerid, pickupid)
{
// If the player picks up the Buy_License pickup at the driving school in Doherty
if (pickupid == Pickup_License)
    // Ask the player which license he wants to buy
ShowPlayerDialog(playerid, DialogBuyLicenses, DIALOG_STYLE_LIST, TXT_DialogLicenseTitle, TXT_DialogLicenseList, TXT_DialogButtonBuy, TXT_DialogButtonCancel); // Let the player buy a license
return 1;
}
 
// This callback gets called when a player spawns somewhere
public OnPlayerSpawn(playerid)
{
// Always allow NPC\'s to spawn without logging in
if (IsPlayerNPC(playerid))
return 1;
// Check if the player properly logged in by typing his password
if (APlayerData[playerid][LoggedIn] == false)
{
SendClientMessage(playerid, 0xFFFFFFFF, TXT_FailedLoginProperly);
    Kick(playerid); // Kick the player if he didn\'t log in properly
}
// Setup local variables
new missiontext[200];
// Spawn the player in the global world (where everybody plays the game)
    SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
// Also set a variable that tracks in which house the player currently is
APlayerData[playerid][CurrentHouse] = 0;
// Disable the clock
TogglePlayerClock(playerid, 0);
// Delete all weapons from the player
ResetPlayerWeapons(playerid);
// Set the missiontext based on the chosen class
switch (APlayerData[playerid][PlayerClass])
{
case ClassTruckDriver: // Truck-driver class
{
   format(missiontext, sizeof(missiontext), Trucker_NoJobText); // Preset the missiontext
   SetPlayerColor(playerid, ColorClassTruckDriver); // Set the playercolor (chatcolor for the player and color on the map)
}
case ClassBusDriver: // Bus-driver class
{
   format(missiontext, sizeof(missiontext), BusDriver_NoJobText); // Preset the missiontext
   SetPlayerColor(playerid, ColorClassBusDriver); // Set the playercolor (chatcolor for the player and color on the map)
}
case ClassPilot: // Pilot class
{
   format(missiontext, sizeof(missiontext), Pilot_NoJobText); // Preset the missiontext
   SetPlayerColor(playerid, ColorClassPilot); // Set the playercolor (chatcolor for the player and color on the map)
}
case ClassPolice: // Police class
{
   format(missiontext, sizeof(missiontext), Police_NoJobText); // Preset the missiontext
   SetPlayerColor(playerid, ColorClassPolice); // Set the playercolor (chatcolor for the player and color on the map)
   // Start the PlayerCheckTimer to scan for wanted players (be sure the timer has been destroyed first)
   KillTimer(APlayerData[playerid][PlayerCheckTimer]);
   APlayerData[playerid][PlayerCheckTimer] = SetTimerEx(\"Police_CheckWantedPlayers\", 1000, true, \"i\", playerid);
   // Check if the police player can get weapons
   if (PoliceGetsWeapons == true)
   {
       // Give up to 12 weapons to the player
      for (new i; i < 12; i++)
          GivePlayerWeapon(playerid, APoliceWeapons, PoliceWeaponsAmmo);
   }
}
case ClassMafia: // Mafia class
{
   format(missiontext, sizeof(missiontext), Mafia_NoJobText); // Preset the missiontext
   SetPlayerColor(playerid, ColorClassMafia); // Set the playercolor (chatcolor for the player and color on the map)
   // Start the PlayerCheckTimer to scan for players that carry mafia-loads (be sure the timer has been destroyed first)
   KillTimer(APlayerData[playerid][PlayerCheckTimer]);
   APlayerData[playerid][PlayerCheckTimer] = SetTimerEx(\"Mafia_CheckMafiaLoads\", 1000, true, \"i\", playerid);
}
case ClassCourier: // Courier class
{
   format(missiontext, sizeof(missiontext), Courier_NoJobText); // Preset the missiontext
   SetPlayerColor(playerid, ColorClassCourier); // Set the playercolor (chatcolor for the player and color on the map)
}
case ClassAssistance: // Assistance class
{
   format(missiontext, sizeof(missiontext), Assistance_NoJobText); // Preset the missiontext
   SetPlayerColor(playerid, ColorClassAssistance); // Set the playercolor (chatcolor for the player and color on the map)
   // Start the PlayerCheckTimer to scan for players who need assistance (be sure the timer has been destroyed first)
   KillTimer(APlayerData[playerid][PlayerCheckTimer]);
   APlayerData[playerid][PlayerCheckTimer] = SetTimerEx(\"Assistance_CheckPlayers\", 1000, true, \"i\", playerid);
}
case ClassRoadWorker: // Roadworker class
{
   format(missiontext, sizeof(missiontext), RoadWorker_NoJobText); // Preset the missiontext
   SetPlayerColor(playerid, ColorClassRoadWorker); // Set the playercolor (chatcolor for the player and color on the map)
}
}
// Set the missiontext
TextDrawSetString(APlayerData[playerid][MissionText], missiontext);
// Show the missiontext for this player
TextDrawShowForPlayer(playerid, APlayerData[playerid][MissionText]);
// If the player spawns and his jailtime hasn\'t passed yet, put him back in jail
if (APlayerData[playerid][PlayerJailed] != 0)
    Police_JailPlayer(playerid, APlayerData[playerid][PlayerJailed]);
return 1;
}
 
// This callback gets called whenever a player enters a checkpoint
public OnPlayerEnterCheckpoint(playerid)
{
// Check the player\'s class
switch (APlayerData[playerid][PlayerClass])
{
case ClassTruckDriver: // Truckdriver class
   Trucker_OnPlayerEnterCheckpoint(playerid); // Process the checkpoint (load or unload goods)
case ClassBusDriver: // BusDriver class
{
   GameTextForPlayer(playerid, TXT_BusDriverMissionPassed, 3000, 4); // Show a message to let the player know he finished his job
   BusDriver_EndJob(playerid); // End the current mission
}
case ClassPilot: // Pilot class
   Pilot_OnPlayerEnterCheckpoint(playerid); // Process the checkpoint (load or unload)
case ClassMafia: // Mafia class
   Mafia_OnPlayerEnterCheckpoint(playerid);
case ClassCourier: // Courier class
   Courier_OnPlayerEnterCheckpoint(playerid);
case ClassRoadWorker: // Roadworker class
{
   // Only end the mission when doing \"repair-speedcamera\" jobtype (checkpoint is the base of the roadworker)
   if (APlayerData[playerid][JobID] == 1) // Repairing speedcamera\'s
   {
      GameTextForPlayer(playerid, TXT_RoadworkerMissionPassed, 3000, 4); // Show a message to let the player know he finished his job
      Roadworker_EndJob(playerid); // End the current mission
   }
   if (APlayerData[playerid][JobID] == 2) // Towing broken vehicle to shredder
                Roadworker_EnterCheckpoint(playerid);
}
}
return 1;
}
 
// This callback gets called when a player enters a race-checkpoint
public OnPlayerEnterRaceCheckpoint(playerid)
{
// Check the player\'s class
switch (APlayerData[playerid][PlayerClass])
{
case ClassBusDriver: // BusDriver class
    Bus_EnterRaceCheckpoint(playerid); // Process the checkpoint
case ClassRoadWorker: // Roadworker class
   Roadworker_EnterRaceCheckpoint(playerid);
}
return 1;
}
 
// This callback gets called whenever a player dies
public OnPlayerDeath(playerid, killerid, reason)
{
// Setup local variables
new VictimName[24], KillerName[24], Msg[128];
// Clear the missiontext
TextDrawSetString(APlayerData[playerid][MissionText], \" \");
// Hide the missiontext for this player (when the player is choosing a class, it\'s not required to show any mission-text)
TextDrawHideForPlayer(playerid, APlayerData[playerid][MissionText]);
// Stop any job that may have started
switch (APlayerData[playerid][PlayerClass])
{
case ClassTruckDriver: Trucker_EndJob(playerid);
case ClassBusDriver: BusDriver_EndJob(playerid);
case ClassPilot: Pilot_EndJob(playerid);
case ClassPolice: Police_EndJob(playerid);
case ClassMafia: Mafia_EndJob(playerid);
case ClassAssistance: Assistance_EndJob(playerid);
case ClassRoadWorker: Roadworker_EndJob(playerid);
}
// If the player is part of a convoy, kick him from it
Convoy_Leave(playerid);
// If another player kills you, he\'ll get an extra star of his wanted level
if (killerid != INVALID_PLAYER_ID)
{
// Increase the wanted level of the killer by one star
    SetPlayerWantedLevel(killerid, GetPlayerWantedLevel(killerid) + 1);
    // Get the name of the killed player and the killer
    GetPlayerName(playerid, VictimName, sizeof(VictimName));
    GetPlayerName(killerid, KillerName, sizeof(KillerName));
    // Let the killed know the police are informed about the kill
format(Msg, 128, \"{FF0000}Megölted {FFFF00}%s{FF0000}, köröznek a rendörök\", VictimName);
SendClientMessage(killerid, 0xFFFFFFFF, Msg);
// Inform all police players about the kill
format(Msg, 128, \"{00FF00}Player {FFFF00}%s{00FF00} killed {FFFF00}%s{00FF00}, pursue and fine him\", KillerName, VictimName);
Police_SendMessage(Msg);
}
return 1;
}
 
// This callback gets called when the player is selecting a class (but hasn\'t clicked \"Spawn\" yet)
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerInterior(playerid,14);
SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
SetPlayerFacingAngle(playerid, 270.0);
SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
// Display a short message to inform the player about the class he\'s about to choose
switch (classid)
{
   case 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12: // Classes that will be truckdrivers
{
   // Display the name of the class
            GameTextForPlayer(playerid, TXT_ClassTrucker, 3000, 4);
   // Store the class for the player (truckdriver)
   APlayerData[playerid][PlayerClass] = ClassTruckDriver;
}
case 13, 14: // Classes that will be bus-drivers
{
   // Display the name of the class
            GameTextForPlayer(playerid, TXT_ClassBusDriver, 3000, 4);
   // Store the class for the player (busdriver)
   APlayerData[playerid][PlayerClass] = ClassBusDriver;
}
case 15: // Classes that will be Pilot
{
   // Display the name of the class
            GameTextForPlayer(playerid, TXT_ClassPilot, 3000, 4);
   // Store the class for the player (pilot)
   APlayerData[playerid][PlayerClass] = ClassPilot;
}
case 16, 17, 18, 19, 20, 21, 22, 23, 24 : // Classes that will be police
{
   // Display the name of the class
            GameTextForPlayer(playerid, TXT_ClassPolice, 3000, 4);
   // Store the class for the player (police)
   APlayerData[playerid][PlayerClass] = ClassPolice;
}
case 25, 26, 27, 28, 29, 30, 31, 32, 33, 34: // Classes that will be mafia
{
   // Display the name of the class
   GameTextForPlayer(playerid, TXT_ClassMafia, 3000, 4);
   // Store the class for the player (mafia)
   APlayerData[playerid][PlayerClass] = ClassMafia;
}
case 35, 36: // Classes that will be courier
{
   // Display the name of the class
   GameTextForPlayer(playerid, TXT_ClassCourier, 3000, 4);
   // Store the class for the player (courier)
   APlayerData[playerid][PlayerClass] = ClassCourier;
}
case 37, 38: // Classes that will be assistance
{
   // Display the name of the class
   GameTextForPlayer(playerid, TXT_ClassAssistance, 3000, 4);
   // Store the class for the player (assistance)
   APlayerData[playerid][PlayerClass] = ClassAssistance;
}
case 39, 40, 41: // Classes that will be roadworker
{
   // Display the name of the class
   GameTextForPlayer(playerid, TXT_ClassRoadWorker, 3000, 4);
   // Store the class for the player (roadworker)
   APlayerData[playerid][PlayerClass] = ClassRoadWorker;
}
}
return 1;
}
 
// This callback is called when the player attempts to spawn via class-selection
public OnPlayerRequestSpawn(playerid)
{
new Index, Float:x, Float:y, Float:z, Float:Angle, Name[24], Msg[128];
// Get the player\'s name
GetPlayerName(playerid, Name, sizeof(Name));
// Choose a random spawnlocation based on the player\'s class
switch (APlayerData[playerid][PlayerClass])
{
case ClassTruckDriver:
{
   Index = random(sizeof(ASpawnLocationsTrucker)); // Get a random array-index to chose a random spawnlocation
   x = ASpawnLocationsTrucker[index][spawnX]; // Get the X-position for the spawnlocation
   y = ASpawnLocationsTrucker[index][spawnY]; // Get the Y-position for the spawnlocation
   z = ASpawnLocationsTrucker[index][spawnZ]; // Get the Z-position for the spawnlocation
   Angle = ASpawnLocationsTrucker[index][spawnAngle]; // Get the rotation-angle for the spawnlocation
   format(Msg, 128, \"{FFFF00}%s{00FF00} Csatlakozott {FFFF00}Kamionosnak\", Name);
}
case ClassBusDriver:
{
   Index = random(sizeof(ASpawnLocationsBusDriver));
   x = ASpawnLocationsBusDriver[index][spawnX]; // Get the X-position for the spawnlocation
   y = ASpawnLocationsBusDriver[index][spawnY]; // Get the Y-position for the spawnlocation
   z = ASpawnLocationsBusDriver[index][spawnZ]; // Get the Z-position for the spawnlocation
   Angle = ASpawnLocationsBusDriver[index][spawnAngle]; // Get the rotation-angle for the spawnlocation
   format(Msg, 128, \"{FFFF00}%s{00FF00} Csatlakozott {FFFF00}Buszosnak\", Name);
}
case ClassPilot:
{
   Index = random(sizeof(ASpawnLocationsPilot));
   x = ASpawnLocationsPilot[index][spawnX]; // Get the X-position for the spawnlocation
   y = ASpawnLocationsPilot[index][spawnY]; // Get the Y-position for the spawnlocation
   z = ASpawnLocationsPilot[index][spawnZ]; // Get the Z-position for the spawnlocation
   Angle = ASpawnLocationsPilot[index][spawnAngle]; // Get the rotation-angle for the spawnlocation
   format(Msg, 128, \"{FFFF00}%s{00FF00} Csatlakozott {FFFF00}Pilótának\", Name);
}
case ClassPolice:
{
   // If the player has less than 100 scorepoints
    if (APlayerData[playerid][PlayerScore] < 100)
    {
      // Let the player know he needs 100 scorepoints
      GameTextForPlayer(playerid, \"100 pont kel hogy rendör lehes\", 5000, 4);
      SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}100 pont kel hogy rendör lehes\");
      return 0; // Don\'t allow the player to spawn as police player
    }
   // If the player has a wanted level
    if (GetPlayerWantedLevel(playerid) > 0)
    {
      // Let the player know he cannot have a wanted level to join police
      GameTextForPlayer(playerid, \"Nem lehetsz rendör mert körözöt vagy\", 5000, 4);
      SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Nem lehetsz rendör mert körözöt vagy\");
      return 0; // Don\'t allow the player to spawn as police player
    }
   Index = random(sizeof(ASpawnLocationsPolice));
   x = ASpawnLocationsPolice[index][spawnX]; // Get the X-position for the spawnlocation
   y = ASpawnLocationsPolice[index][spawnY]; // Get the Y-position for the spawnlocation
   z = ASpawnLocationsPolice[index][spawnZ]; // Get the Z-position for the spawnlocation
   Angle = ASpawnLocationsPolice[index][spawnAngle]; // Get the rotation-angle for the spawnlocation
   format(Msg, 128, \"{FFFF00}%s{00FF00} Csatlakozott {FFFF00}Rendőrnek\", Name);
}
case ClassMafia:
{
   Index = random(sizeof(ASpawnLocationsMafia));
   x = ASpawnLocationsMafia[index][spawnX]; // Get the X-position for the spawnlocation
   y = ASpawnLocationsMafia[index][spawnY]; // Get the Y-position for the spawnlocation
   z = ASpawnLocationsMafia[index][spawnZ]; // Get the Z-position for the spawnlocation
   Angle = ASpawnLocationsMafia[index][spawnAngle]; // Get the rotation-angle for the spawnlocation
   format(Msg, 128, \"{FFFF00}%s{00FF00} Csatlakozott {FFFF00}Mafiának\", Name);
}
case ClassCourier:
{
   Index = random(sizeof(ASpawnLocationsCourier));
   x = ASpawnLocationsCourier[index][spawnX]; // Get the X-position for the spawnlocation
   y = ASpawnLocationsCourier[index][spawnY]; // Get the Y-position for the spawnlocation
   z = ASpawnLocationsCourier[index][spawnZ]; // Get the Z-position for the spawnlocation
   Angle = ASpawnLocationsCourier[index][spawnAngle]; // Get the rotation-angle for the spawnlocation
   format(Msg, 128, \"{FFFF00}%s{00FF00} Csatlakozott {FFFF00}Futárnak\", Name);
}
case ClassAssistance:
{
   Index = random(sizeof(ASpawnLocationsAssistance));
   x = ASpawnLocationsAssistance[index][spawnX]; // Get the X-position for the spawnlocation
   y = ASpawnLocationsAssistance[index][spawnY]; // Get the Y-position for the spawnlocation
   z = ASpawnLocationsAssistance[index][spawnZ]; // Get the Z-position for the spawnlocation
   Angle = ASpawnLocationsAssistance[index][spawnAngle]; // Get the rotation-angle for the spawnlocation
   format(Msg, 128, \"{FFFF00}%s{00FF00} Csatlakozott {FFFF00}Autómentőnek\", Name);
}
case ClassRoadWorker:
{
   Index = random(sizeof(ASpawnLocationsRoadWorker));
   x = ASpawnLocationsRoadWorker[index][spawnX]; // Get the X-position for the spawnlocation
   y = ASpawnLocationsRoadWorker[index][spawnY]; // Get the Y-position for the spawnlocation
   z = ASpawnLocationsRoadWorker[index][spawnZ]; // Get the Z-position for the spawnlocation
   Angle = ASpawnLocationsRoadWorker[index][spawnAngle]; // Get the rotation-angle for the spawnlocation
   format(Msg, 128, \"{FFFF00}%s{00FF00} Csatlakozott {FFFF00}Útkaprbantartónak\", Name);
}
}
// Spawn the player with his chosen skin at a random location based on his class
SetSpawnInfo(playerid, 0, GetPlayerSkin(playerid), x, y, z, Angle, 0, 0, 0, 0, 0, 0);
// Send the message to all players (who joined which class)
SendClientMessageToAll(0xFFFFFFFF, Msg);
    return 1;
}
 
// This callback gets called when a vehicle respawns at it\'s spawn-location (where it was created)
public OnVehicleSpawn(vehicleid)
{
// Set the vehicle as not-wanted by the mafia
AVehicleData[vehicleid][MafiaLoad] = false;
// Also reset the fuel to maximum (only for non-owned vehicles)
if (AVehicleData[vehicleid][Owned] == false)
AVehicleData[vehicleid][Fuel] = MaxFuel;
// Re-apply the paintjob (if any was applied)
if (AVehicleData[vehicleid][PaintJob] != 0)
{
    // Re-apply the paintjob
ChangeVehiclePaintjob(vehicleid, AVehicleData[vehicleid][PaintJob] - 1);
}
// Also update the car-color
ChangeVehicleColor(vehicleid, AVehicleData[vehicleid][Color1], AVehicleData[vehicleid][Color2]);
// Re-add all components that were installed (if they were there)
for (new i; i < 14; i++)
{
// Remove all mods from the vehicle (all added mods applied by hackers will hopefully be removed this way when the vehicle respawns)
        RemoveVehicleComponent(vehicleid, GetVehicleComponentInSlot(vehicleid, i));
    // Check if the componentslot has a valid component-id
if (AVehicleData[vehicleid][Components] != 0)
        AddVehicleComponent(vehicleid, AVehicleData[vehicleid][Components]); // Add the component to the vehicle
}
    return 1;
}
 
// This callback is called when the vehicle leaves a mod shop
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
// Let the player pay $150 for changing the color (if they have been changed)
if ((AVehicleData[vehicleid][Color1] != color1) || (AVehicleData[vehicleid][Color2] != color2))
{
RewardPlayer(playerid, -100, 0);
SendClientMessage(playerid, 0xFFFFFFFF, \"{00FF00}Kicserélted az autód szinét $100\");
}
// Save the colors
AVehicleData[vehicleid][Color1] = color1;
AVehicleData[vehicleid][Color2] = color2;
// If the primary color is black, remove the paintjob
if (color1 == 0)
AVehicleData[vehicleid][PaintJob] = 0;
return 1;
}
 
// This callback gets called when a player enters or exits a mod-shop
public OnEnterExitModShop(playerid, enterexit, interiorid)
{
return 1;
}
 
// This callback gets called whenever a player mods his vehicle
public OnVehicleMod(playerid, vehicleid, componentid)
{
// When the player changes a component of his vehicle, reduce the price of the component from the player\'s money
APlayerData[playerid][PlayerMoney] = APlayerData[playerid][PlayerMoney] - AVehicleModPrices[componentid - 1000];
// Store the component in the AVehicleData array
AVehicleData[vehicleid][Components][GetVehicleComponentType(componentid)] = componentid;
return 1;
}
 
// This callback gets called whenever a player VIEWS at a paintjob in a mod garage (viewing automatically applies it)
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
// Store the paintjobid for the vehicle (add 1 to the value, otherwise checking for an applied paintjob is difficult)
    AVehicleData[vehicleid][PaintJob] = paintjobid + 1;
return 1;
}
 
// This callback gets called whenever a player enters a vehicle
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
// Setup local variables
new engine, lights, alarm, doors, bonnet, boot, objective;
// Check if the vehicle has fuel
if (AVehicleData[vehicleid][Fuel] > 0)
{
// Start the engine and turn on the lights
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vehicleid, 1, 1, alarm, doors, bonnet, boot, objective);
}
// Store the player\'s current location and interior-id, otherwise anti-airbreak hack code could kick you
GetPlayerPos(playerid, APlayerData[playerid][PreviousX], APlayerData[playerid][PreviousY], APlayerData[playerid][PreviousZ]);
APlayerData[playerid][PreviousInt] = GetPlayerInterior(playerid);
return 1;
}
 
// This callback gets called when a player exits his vehicle
public OnPlayerExitVehicle(playerid, vehicleid)
{
// Setup local variables
new engine, lights, alarm, doors, bonnet, boot, objective;
// Check if the player is the driver of the vehicle
if (GetPlayerVehicleSeat(playerid) == 0)
{
// Turn off the lights and engine
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vehicleid, 0, 0, alarm, doors, bonnet, boot, objective);
}
// Chech if the player is a pilot
if (APlayerData[playerid][PlayerClass] == ClassPilot)
{
    // If the pilot started a job --> as soon as a pilot leaves his plane while doing a job, he fails his mission
if (APlayerData[playerid][JobStarted] == true)
{
    // End the job (clear data)
   Pilot_EndJob(playerid);
   // Inform the player that he failed the mission
   GameTextForPlayer(playerid, TXT_FailedMission, 5000, 4);
   // Reduce the player\'s cash by 1000
   RewardPlayer(playerid, -1000, 0);
}
}
return 1;
}
 
// This callback gets called whenever a vehicle enters the water or is destroyed (explodes)
public OnVehicleDeath(vehicleid)
{
// Get the houseid to which this vehicle belongs
new HouseID = AVehicleData[vehicleid][belongsToHouse];
// Check if this vehicle belongs to a house
if (HouseID != 0)
{
// If the house doesn\'t have insurance for it\'s vehicles
if (AHouseData[HouseID][insurance] == 0)
{
    // Delete the vehicle, clear the data and remove it from the house it belongs to
   Vehicle_Delete(vehicleid);
    // Save the house (and linked vehicles)
    HouseFile_Save(HouseID);
}
}
return 1;
}
 
// This callback gets called when the player changes state
public OnPlayerStateChange(playerid,newstate,oldstate)
{
// Setup local variables
new vid, Name[24], Msg[128], engine, lights, alarm, doors, bonnet, boot, objective;
switch (newstate)
{
case PLAYER_STATE_DRIVER: // Player became the driver of a vehicle
{
   // Get the ID of the player\'s vehicle
   vid = GetPlayerVehicleID(playerid);
   // Get the player\'s name (the one who is trying to enter the vehicle)
   GetPlayerName(playerid, Name, sizeof(Name));
   // Check if the vehicle is owned
   if (AVehicleData[vid][Owned] == true)
   {
      // Check if the vehicle is owned by somebody else (strcmp will not be 0)
      if (strcmp(AVehicleData[vid][Owner], Name, false) != 0)
      {
         // Force the player out of the vehicle
         RemovePlayerFromVehicle(playerid);
         // Turn off the lights and engine
         GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
         SetVehicleParamsEx(vid, 0, 0, alarm, doors, bonnet, boot, objective);
         // Let the player know he cannot use somebody else\'s vehicle
         format(Msg, 128, TXT_SpeedometerCannotUseVehicle, AVehicleData[vid][Owner]);
         SendClientMessage(playerid, 0xFFFFFFFF, Msg);
      }
      // Check if the vehicle is clamped
      if (AVehicleData[vid][Clamped] == true)
      {
         // Force the player out of the vehicle
         RemovePlayerFromVehicle(playerid);
         // Turn off the lights and engine
         GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
         SetVehicleParamsEx(vid, 0, 0, alarm, doors, bonnet, boot, objective);
         // Let the player know he cannot use a clamped vehicle
         format(Msg, 128, TXT_SpeedometerClampedVehicle);
         SendClientMessage(playerid, 0xFFFFFFFF, Msg);
         format(Msg, 128, TXT_SpeedometerClampedVehicle2);
         SendClientMessage(playerid, 0xFFFFFFFF, Msg);
      }
   }
   // Check if the player is not a cop
   if (APlayerData[playerid][PlayerClass] != ClassPolice)
   {
      // First check if the vehicle is a static vehicle (player can still use a bought cop-car that he bought in his house,
      // as a bought vehicle isn\'t static)
      if (AVehicleData[vid][staticVehicle] == true)
      {
         // Check if the entered vehicle is a cop vehicle
         switch (GetVehicleModel(vid))
         {
            case VehiclePoliceLSPD, VehiclePoliceSFPD, VehiclePoliceLVPD, VehicleHPV1000, VehiclePoliceRanger:
            {
               // Force the player out of the vehicle
               RemovePlayerFromVehicle(playerid);
               // Turn off the lights and engine
               GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
               SetVehicleParamsEx(vid, 0, 0, alarm, doors, bonnet, boot, objective);
               // Let the player know he cannot use a cop car
               SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Nem használhatod az autot mert a rendöröké\");
            }
         }
      }
   }
}
}
return 1;
}
 
// This callback gets called whenever a player presses a key
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
// Debug the keypresses
//   DebugKeys(playerid, newkeys, oldkeys);
// ****************************************************************************************
// NOTE: the keys are messed up, so the code may look strange when testing for certain keys
// ****************************************************************************************
// Fining and jailing players when you\'re police and press the correct keys
// Check the class of the player
switch (APlayerData[playerid][PlayerClass])
{
case ClassPolice:
{
    // If the police-player pressed the RMB key (AIM key) when OUTSIDE his vehicle
   if (((newkeys & KEY_HANDBRAKE) && !(oldkeys & KEY_HANDBRAKE)) && (GetPlayerVehicleID(playerid) == 0))
      Police_FineNearbyPlayers(playerid);
    // If the police-player pressed the LCTRL (SECUNDAIRY key) key when INSIDE his vehicle
   if (((newkeys & KEY_ACTION) && !(oldkeys & KEY_ACTION)) && (GetPlayerVehicleID(playerid) != 0))
      Police_WarnNearbyPlayers(playerid);
}
case ClassAssistance:
{
    // If the assistance-player pressed the RMB key (AIM key) when OUTSIDE his vehicle
   if (((newkeys & KEY_HANDBRAKE) && !(oldkeys & KEY_HANDBRAKE)) && (GetPlayerVehicleID(playerid) == 0))
      Assistance_FixVehicle(playerid);
    // If the police-player pressed the LCTRL (SECUNDAIRY key) key when INSIDE his vehicle
   if (((newkeys & KEY_ACTION) && !(oldkeys & KEY_ACTION)) && (GetPlayerVehicleID(playerid) != 0))
      Assistance_FixOwnVehicle(playerid);
}
}
// Trying to attach the closest vehicle to the towtruck when the player pressed FIRE when inside a towtruck
// Check if the player is inside a towtruck
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == VehicleTowTruck)
{
// Check if the player pushed the fire-key
if(newkeys & KEY_FIRE)
{
   // Get the vehicle-id of the closest vehicle
   new closest = GetClosestVehicle(playerid);
   if(VehicleToPlayer(playerid, closest) < 10) // Check if the closest vehicle is within 10m from the player
      AttachTrailerToVehicle(closest, GetPlayerVehicleID(playerid)); // Attach the vehicle to the towtruck
}
}
// Refuel a vehicle when driving a vehicle and pressing the HORN key
// Check if the player presses the HORN key
if ((newkeys & KEY_CROUCH) && !(oldkeys & KEY_CROUCH))
{
// Check if the player is driving a vehicle
if (GetPlayerVehicleSeat(playerid) == 0)
{
   // Loop through all ARefuelPickups
   for (new i; i < sizeof(ARefuelPickups); i++)
   {
      // Check if the player is in range of a refuelpickup
      if(IsPlayerInRangeOfPoint(playerid, 2.5, ARefuelPickups[pux], ARefuelPickups[puy], ARefuelPickups[puz]))
      {
         // Show a message that the player\'s vehicle is refuelling
         GameTextForPlayer(playerid, TXT_Refuelling, 3000, 4);
         // Don\'t allow the player to move again (the timer will allow it after refuelling)
         TogglePlayerControllable(playerid, 0);
             // Start a timer (let the player wait until the vehicle is refuelled)
          SetTimerEx(\"Tankolás Várj...\", 5000, false, \"i\", playerid);
          // Stop the search
         break;
      }
   }
}
}
return 1;
}
 
forward VehicleToPlayer(playerid,vehicleid);
// Get the distance between the vehicle and the player
public VehicleToPlayer(playerid, vehicleid)
{
// Setup local variables
new Float:pX, Float:pY, Float:pZ, Float:cX, Float:cY, Float:cZ, Float:distance;
// Get the player position
GetPlayerPos(playerid, pX, pY, pZ);
// Get the vehicle position
GetVehiclePos(vehicleid, cX, cY, cZ);
// Calculate the distance
distance = floatsqroot(floatpower(floatabs(floatsub(cX, pX)), 2) + floatpower(floatabs(floatsub(cY, pY)), 2) + floatpower(floatabs(floatsub(cZ, pZ)), 2));
// Return the distance to the calling routine
return floatround(distance);
}
 
forward GetClosestVehicle(playerid);
// Find the vehicle closest to the player
public GetClosestVehicle(playerid)
{
// Setup local variables
new Float:distance = 99999.000+1, Float:distance2, result = -1;
// Loop through all vehicles
for(new i = 0; i < MAX_VEHICLES; i++)
{
// First check if the player isn\'t driving the current vehicle that needs to be checked for it\'s distance to the player
if (GetPlayerVehicleID(playerid) != i)
{
   // Get

44
Segítségkérés / PPC_Trucking V1
« Dátum: 2015. Július 11. - 00:28:07 »
Tesztelgetem ezt a módot de admint nem tudok adni magamnak hiába beírom az ini fájlomba mert a leírásban azt írják hogy ott kell a Level-t átírni de nem ad admint mi lehet a gond?
http://forum.sa-mp.com/showthread.php?t=196493&highlight=truck+gamemode

Oldalak: 1 2 [3]
SimplePortal 2.3.7 © 2008-2024, SimplePortal