Jump to content

myonlake

Members
  • Posts

    2,312
  • Joined

  • Days Won

    40

Everything posted by myonlake

  1. Aha, apparently there is such attribute then. Didn't find that earlier. There's just one problem though, loading automatically from a map file doesn't categorize the vehicles into teams, that's why it's better to create the vehicles in Lua.
  2. Copy the code again, I suppose it should work now, forgot to edit the isVehicleOnList function to match the new table structure. I added the seat check as well. Let me know if it still doesn't work, should though. About the class check, not sure what you use; if you use element data for player class, then remove the variable for aclGroup and the condition for isObjectInACLGroup, and add the element data match check there. If the class is not the same as the vehicle's, then cancel the event. The following event should do the trick for element data matching. addEventHandler( "onVehicleStartEnter", root, function( player, seat ) if ( seat ~= 0 ) then return end local className = getElementData( source, "class" ) if ( isVehicleOnList( source ) ) and ( className ) and ( className ~= "everyone" ) then local account = ( ( getPlayerAccount( player ) and not isGuestAccount( getPlayerAccount( player ) ) ) and getPlayerAccount( player ) or false ) if ( not account ) or ( not getElementData( player, "class" ) ) or ( account and getElementData( player, "class" ) ~= className ) then cancelEvent( ) outputChatBox( "This vehicle is locked for following group: " .. className .. ".", player, 255, 0, 0, false ) end end end )
  3. Well, you can do it this way too. local vehicles = { emergency = { createVehicle( 416, 2036.0000000, -1426.9000200, 17.3000000, 0.0000000, 245, 245, 15 ), -- Ambulance createVehicle( 416, 2036.1999500, -1437.1999500, 17.6000000, 0.0000000, 245, 245, 15 ), -- Ambulance createVehicle( 416, 2018.5000000, -1409.9000200, 17.3000000, 272.2500000, 245, 245, 15 ), -- Ambulance createVehicle( 416, 1179.8000500, -1338.9000200, 14.1000000, 270.0000000, 245, 245, 15 ), -- Ambulance createVehicle( 416, 1179.1999500, -1309.4000200, 14.1000000, 270.0000000, 245, 245, 15 ) -- Ambulance }, police = { createVehicle( 427, 1530.7099600, -1645.5000000, 6.1000000, 180.0000000, -1, -1, 15 ), -- Enforcer createVehicle( 427, 1538.6992200, -1645.5000000, 6.1000000, 180.0000000, -1, -1, 15 ), -- Enforcer createVehicle( 490, 1543.8994100, -1663.0996100, 6.2000000, 90.0000000, -1, -1, 15 ), -- FBI Rancher createVehicle( 490, 1543.8994100, -1667.5000000, 6.2000000, 90.0000000, -1, -1, 15 ), -- FBI Rancher createVehicle( 490, 1543.8994100, -1655.0996100, 6.2000000, 90.0000000, -1, -1, 15 ), -- FBI Rancher createVehicle( 490, 1543.8994100, -1659.1992200, 6.2000000, 90.0000000, -1, -1, 15 ), -- FBI Rancher createVehicle( 596, 1590.9000200, -1708.5999800, 5.7000000, 0.0000000, -1, -1, 15 ), -- Police Car (LSPD) createVehicle( 596, 1587.0000000, -1708.5999800, 5.7000000, 0.0000000, -1, -1, 15 ), -- Police Car (LSPD) createVehicle( 596, 1583.0999800, -1708.5999800, 5.7000000, 0.0000000, -1, -1, 15 ), -- Police Car (LSPD) createVehicle( 596, 1594.9000200, -1708.5999800, 5.7000000, 0.0000000, -1, -1, 15 ), -- Police Car (LSPD) createVehicle( 596, 1599.8000500, -1684.3000500, 5.7000000, 90.0000000, -1, -1, 15 ), -- Police Car (LSPD) createVehicle( 596, 1599.8000500, -1688.0000000, 5.7000000, 90.0000000, -1, -1, 15 ), -- Police Car (LSPD) createVehicle( 596, 1599.8000500, -1691.5999800, 5.7000000, 90.0000000, -1, -1, 15 ), -- Police Car (LSPD) createVehicle( 596, 1599.8000500, -1695.9000200, 5.7000000, 90.0000000, -1, -1, 15 ) -- Police Car (LSPD) }, admin = { createVehicle( 487, 2078.6001000, -1430.9000200, 48.6000000, 90.0000000, 251, 3, 15 ), -- Maverick createVehicle( 487, 2078.3999000, -1412.8000500, 48.6000000, 90.0000000, 251, 3, 15 ) -- Maverick }, taxi = { createVehicle( 420, 1674.8000500, -1097.4000200, 23.8000000, 90.0000000, 215, 142, 15 ), -- Taxi createVehicle( 420, 1674.8000500, -1102.0999800, 23.8000000, 90.0000000, 215, 142, 15 ), -- Taxi createVehicle( 420, 1674.8000500, -1106.9000200, 23.8000000, 90.0000000, 215, 142, 15 ), -- Taxi createVehicle( 420, 1674.8000500, -1115.5000000, 23.8000000, 90.0000000, 215, 142, 15 ), -- Taxi createVehicle( 420, 1674.8000500, -1125.0000000, 23.8000000, 90.0000000, 215, 142, 15 ), -- Taxi createVehicle( 438, 1674.8000500, -1111.4000200, 24.1000000, 90.0000000, 215, 142, 15 ), -- Cabbie createVehicle( 438, 1674.8000500, -1120.3000500, 24.1000000, 90.0000000, 215, 142, 15 ), -- Cabbie createVehicle( 438, 1674.8000500, -1129.3000500, 24.1000000, 90.0000000, 215, 142, 15 ) -- Cabbie }, everyone = { createVehicle( 448, 2097.8999000, -1801.8000500, 13.1000000, 88.0000000, 132, 4, 15 ), -- Pizzaboy createVehicle( 448, 2097.6999500, -1800.0000000, 13.1000000, 87.9950000, 132, 4, 15 ), -- Pizzaboy createVehicle( 448, 2097.6001000, -1798.0999800, 13.1000000, 87.9950000, 132, 4, 15 ), -- Pizzaboy createVehicle( 448, 2097.5000000, -1796.0000000, 13.1000000, 87.9950000, 132, 4, 15 ), -- Pizzaboy createVehicle( 448, 2097.6999500, -1793.4000200, 13.1000000, 87.9950000, 132, 4, 15 ), -- Pizzaboy createVehicle( 402, 1063.0999800, -1758.5000000, 13.4000000, 90.0000000, 105, 30, 15 ), -- Buffalo createVehicle( 402, 1062.5999800, -1737.6999500, 13.4000000, 90.0000000, 105, 30, 15 ), -- Buffalo createVehicle( 402, 1063.0000000, -1767.0000000, 13.3000000, 90.0000000, 105, 30, 15 ), -- Buffalo createVehicle( 559, 311.7000100, -1808.8000500, 4.2000000, 0.0000000, 170, 173, 15 ), -- Jester createVehicle( 424, 318.0000000, -1808.1999500, 4.3000000, 0.0000000, 81, 84, 15 ), -- BF Injection createVehicle( 550, 2148.5000000, -1194.1999500, 23.8000000, 270.0000000, 124, 28, 15 ), -- Sunrise createVehicle( 550, 2148.6001000, -1179.9000200, 23.7000000, 270.0000000, 124, 28, 15 ), -- Sunrise createVehicle( 576, 2161.6001000, -1187.5999800, 23.6000000, 270.0000000, 32, 32, 15 ), -- Tornado createVehicle( 576, 2162.1001000, -1196.9000200, 23.6000000, 270.0000000, 32, 32, 15 ) -- Tornado } } addEventHandler( "onResourceStart", resourceRoot, function( ) for classID,classData in pairs( vehicles ) do for _,vehicle in pairs( classData ) do setElementData( vehicle, "class", classID, false ) end end end ) function isVehicleOnList( vehicle ) if ( not isElement( vehicle ) ) or ( getElementType( vehicle ) ~= "vehicle" ) or ( not getElementData( vehicle, "class" ) ) then return false end for _,vehicle_ in pairs( vehicles[ getElementData( vehicle, "class" ) ] ) do if ( vehicle_ == vehicle ) then return true end end return false end addEventHandler( "onVehicleStartEnter", root, function( player, seat ) if ( seat ~= 0 ) then return end local className = getElementData( source, "class" ) local aclGroup = aclGetGroup( className ) if ( isVehicleOnList( source ) ) and ( className ) and ( className ~= "everyone" ) and ( aclGroup ) then local account = ( ( getPlayerAccount( player ) and not isGuestAccount( getPlayerAccount( player ) ) ) and getPlayerAccount( player ) or false ) if ( not account ) or ( account and not isObjectInACLGroup( "user." .. getAccountName( account ), aclGroup ) ) then cancelEvent( ) outputChatBox( "This vehicle is locked for following group: " .. className .. ".", player, 255, 0, 0, false ) end end end ) Note, that this checks if the account is in the ACL group of the vehicle category. You have to make an ACL group for each vehicle category individually in acl.xml file, or then make your own check for vehicle categories (e.g. if the player's class element data is the same as the vehicle category).
  4. Instead of isGuestAccount( player ) I switched the player to the account, forgot about that when posting my reply.
  5. Try now, forgot one thing.
  6. Because they have to have another variable name. The variable is always replaced when you define the variable again. local vehicles = { } addEventHandler( "onResourceStart", resourceRoot, function( ) table.insert( vehicles, createVehicle(448, 2097.8999000, -1801.8000500, 13.1000000, 88.0000000, 132, 4, 15 ) ) -- Pizzaboy table.insert( vehicles, createVehicle(448, 2097.6999500, -1800.0000000, 13.1000000, 87.9950000, 132, 4, 15 ) ) -- Pizzaboy table.insert( vehicles, createVehicle(448, 2097.6001000, -1798.0999800, 13.1000000, 87.9950000, 132, 4, 15 ) ) -- Pizzaboy table.insert( vehicles, createVehicle(448, 2097.5000000, -1796.0000000, 13.1000000, 87.9950000, 132, 4, 15 ) ) -- Pizzaboy table.insert( vehicles, createVehicle(448, 2097.6999500, -1793.4000200, 13.1000000, 87.9950000, 132, 4, 15 ) ) -- Pizzaboy table.insert( vehicles, createVehicle(416, 2036.0000000, -1426.9000200, 17.3000000, 0.0000000, 245, 245, 15 ) ) -- Ambulance table.insert( vehicles, createVehicle(416, 2036.1999500, -1437.1999500, 17.6000000, 0.0000000, 245, 245, 15 ) ) -- Ambulance table.insert( vehicles, createVehicle(416, 2018.5000000, -1409.9000200, 17.3000000, 272.2500000, 245, 245, 15 ) ) -- Ambulance table.insert( vehicles, createVehicle(427, 1530.7099600, -1645.5000000, 6.1000000, 180.0000000, -1, -1, 15 ) ) -- Enforcer table.insert( vehicles, createVehicle(427, 1538.6992200, -1645.5000000, 6.1000000, 180.0000000, -1, -1, 15 ) ) -- Enforcer table.insert( vehicles, createVehicle(490, 1543.8994100, -1663.0996100, 6.2000000, 90.0000000, -1, -1, 15 ) ) -- FBI Rancher table.insert( vehicles, createVehicle(490, 1543.8994100, -1667.5000000, 6.2000000, 90.0000000, -1, -1, 15 ) ) -- FBI Rancher table.insert( vehicles, createVehicle(490, 1543.8994100, -1655.0996100, 6.2000000, 90.0000000, -1, -1, 15 ) ) -- FBI Rancher table.insert( vehicles, createVehicle(490, 1543.8994100, -1659.1992200, 6.2000000, 90.0000000, -1, -1, 15 ) ) -- FBI Rancher table.insert( vehicles, createVehicle(596, 1590.9000200, -1708.5999800, 5.7000000, 0.0000000, -1, -1, 15 ) ) -- Police Car (LSPD) table.insert( vehicles, createVehicle(596, 1587.0000000, -1708.5999800, 5.7000000, 0.0000000, -1, -1, 15 ) ) -- Police Car (LSPD) table.insert( vehicles, createVehicle(596, 1583.0999800, -1708.5999800, 5.7000000, 0.0000000, -1, -1, 15 ) ) -- Police Car (LSPD) table.insert( vehicles, createVehicle(596, 1594.9000200, -1708.5999800, 5.7000000, 0.0000000, -1, -1, 15 ) ) -- Police Car (LSPD) table.insert( vehicles, createVehicle(596, 1599.8000500, -1684.3000500, 5.7000000, 90.0000000, -1, -1, 15 ) ) -- Police Car (LSPD) table.insert( vehicles, createVehicle(596, 1599.8000500, -1688.0000000, 5.7000000, 90.0000000, -1, -1, 15 ) ) -- Police Car (LSPD) table.insert( vehicles, createVehicle(596, 1599.8000500, -1691.5999800, 5.7000000, 90.0000000, -1, -1, 15 ) ) -- Police Car (LSPD) table.insert( vehicles, createVehicle(596, 1599.8000500, -1695.9000200, 5.7000000, 90.0000000, -1, -1, 15 ) ) -- Police Car (LSPD) table.insert( vehicles, createVehicle(402, 1063.0999800, -1758.5000000, 13.4000000, 90.0000000, 105, 30, 15 ) ) -- Buffalo table.insert( vehicles, createVehicle(402, 1062.5999800, -1737.6999500, 13.4000000, 90.0000000, 105, 30, 15 ) ) -- Buffalo table.insert( vehicles, createVehicle(402, 1063.0000000, -1767.0000000, 13.3000000, 90.0000000, 105, 30, 15 ) ) -- Buffalo table.insert( vehicles, createVehicle(559, 311.7000100, -1808.8000500, 4.2000000, 0.0000000, 170, 173, 15 ) ) -- Jester table.insert( vehicles, createVehicle(424, 318.0000000, -1808.1999500, 4.3000000, 0.0000000, 81, 84, 15 ) ) -- BF Injection table.insert( vehicles, createVehicle(416, 1179.8000500, -1338.9000200, 14.1000000, 270.0000000, 245, 245, 15 ) ) -- Ambulance table.insert( vehicles, createVehicle(416, 1179.1999500, -1309.4000200, 14.1000000, 270.0000000, 245, 245, 15 ) ) -- Ambulance table.insert( vehicles, createVehicle(420, 1674.8000500, -1097.4000200, 23.8000000, 90.0000000, 215, 142, 15 ) ) -- Taxi table.insert( vehicles, createVehicle(420, 1674.8000500, -1102.0999800, 23.8000000, 90.0000000, 215, 142, 15 ) ) -- Taxi table.insert( vehicles, createVehicle(420, 1674.8000500, -1106.9000200, 23.8000000, 90.0000000, 215, 142, 15 ) ) -- Taxi table.insert( vehicles, createVehicle(420, 1674.8000500, -1115.5000000, 23.8000000, 90.0000000, 215, 142, 15 ) ) -- Taxi table.insert( vehicles, createVehicle(420, 1674.8000500, -1125.0000000, 23.8000000, 90.0000000, 215, 142, 15 ) ) -- Taxi table.insert( vehicles, createVehicle(438, 1674.8000500, -1111.4000200, 24.1000000, 90.0000000, 215, 142, 15 ) ) -- Cabbie table.insert( vehicles, createVehicle(438, 1674.8000500, -1120.3000500, 24.1000000, 90.0000000, 215, 142, 15 ) ) -- Cabbie table.insert( vehicles, createVehicle(438, 1674.8000500, -1129.3000500, 24.1000000, 90.0000000, 215, 142, 15 ) ) -- Cabbie table.insert( vehicles, createVehicle(550, 2148.5000000, -1194.1999500, 23.8000000, 270.0000000, 124, 28, 15 ) ) -- Sunrise table.insert( vehicles, createVehicle(550, 2148.6001000, -1179.9000200, 23.7000000, 270.0000000, 124, 28, 15 ) ) -- Sunrise table.insert( vehicles, createVehicle(576, 2161.6001000, -1187.5999800, 23.6000000, 270.0000000, 32, 32, 15 ) ) -- Tornado table.insert( vehicles, createVehicle(576, 2162.1001000, -1196.9000200, 23.6000000, 270.0000000, 32, 32, 15 ) ) -- Tornado table.insert( vehicles, createVehicle(487, 2078.6001000, -1430.9000200, 48.6000000, 90.0000000, 251, 3, 15 ) ) -- Maverick table.insert( vehicles, createVehicle(487, 2078.3999000, -1412.8000500, 48.6000000, 90.0000000, 251, 3, 15 ) ) -- Maverick end ) function isVehicleOnList( vehicle ) if ( not isElement( vehicle ) ) or ( getElementType( vehicle ) ~= "vehicle" ) then return false end for _,vehicle_ in pairs( vehicles ) do if ( vehicle_ == vehicle ) then return true end end return false end addEventHandler( "onVehicleStartEnter", root, function( player ) if ( isVehicleOnList( source ) ) then local accountName = ( getPlayerAccount( player ) and not isGuestAccount( getPlayerAccount( player ) ) and getAccountName( getPlayerAccount( player ) ) or "" ) if ( accountName ~= "admin" ) then cancelEvent( ) outputChatBox( "This vehicle is locked for following users: Jonas13362", player, 255, 0, 0, false ) end end end )
  7. You didn't define the account, and the setAccountData didn't subtract the cost from the account's current cash amount. Also, you don't need to cancel the event, it's automatically ended if a condition isn't true. Try this. function hay( player, cmd ) local account = ( ( getPlayerAccount( player ) and not isGuestAccount( getPlayerAccount( player ) ) ) and getPlayerAccount( player ) or false ) if ( account ) then local cashHave = tonumber( getAccountData( account, "cash" ) ) if ( cashHave ) and ( cashHave >= 500 ) then local x, y, z = getElementPosition( player ) createObject( 3374, x, y, z ) outputChatBox( "* " .. getPlayerName( player ) .. " bought a hay stack.", root, 255, 255, 255, false ) setAccountData( account, "cash", cashHave - 500 ) else outputChatBox( "* You need more cash.", player, 255, 255, 255, false ) end else outputChatBox( "* You're not logged in.", player, 255, 255, 255, false ) end end addCommandHandler( "hay", hay )
  8. myonlake

    colshop

    That code doesn't make any sense. Please, stop.
  9. You cannot lock vehicles in map files. You have to manually load the map file and spawn the vehicles in Lua and make your own custom attribute for locked state.
  10. myonlake

    Question

    It doesn't work always, onClientResourceStart is to guarantee that the script is ran when the resource is downloaded and properly started. I've had cases where my textures and models didn't load because of this.
  11. Explain me how server-side rendering works, I'm very excited to hear about it.
  12. You have to render the position of the window with interpolateBetween, which moves the window around in an animation. That's the only way to make it work. This is shown in the second example on the interpolateBetween Wiki article.
  13. It won't stream frozen elements if they're not in the streaming distance, it won't fix anything. In addition, the problem was solved by passing in setElementStreamable.
  14. Since you copy-pasted that from the Wiki too, go ahead and copy-paste the following as well. That will do the thing for you. https://wiki.multitheftauto.com/wiki/SmoothMoveCamera
  15. That has nothing to do with this issue.
  16. Do you mind checking /debugscript 3 for any possible errors and post them in here. That's the only way we know what's wrong.
  17. I went a little off from the subject as IIYAMA stated that tables are the best thing you can have, so I just wanted to correct him there that it's the best thing you can have when tables are used properly. Of course, in this situation it's not related since we're just getting data and not sorting it, that's why I also mentioned that using element data is okay and it's not wrong to use them.
  18. AFAIK it has been designed to share efficient data/score between clients. When you use it for all things it will lagg the server and I know you are going to use it for everything, it is simply a starter habbit. I will recommend you to stay with those tables, because they are the most powerful/fasted/optimised scripting way. Simply because they are part of lua, when other things are just extended functions from mta. Next to saving in tables, your code can be shorter(writing less code) for the same result. It does not lag anyone to use element data, the only problem with useless data is that it is a waste of bandwidth as explained in the Wiki article, other than that, if you want to share important data of a player between the server and a client, then you can use element data, there is nothing wrong in using it. There are tens of ways, if not hundreds of ways to store and share data between the server and a client, and element data is just one of it, just like tables are. Obviously tables can be better than element data as table is a native feature and element data is just another MTA feature, do not get me wrong, but tables are not necessarily better than element data. If you are not familiar with the algorithms that you should use when handling tables, then you should read in-depth information of tables and sorting. There are techniques that will sort a table "faster", as in more results quicker, and techniques that are way "slower", as in less results the same way as another algorithm. One good example is the Big O notation, which is fairly familiar to programmers and mathematicians, the whole data sorting category in general, and yes, this includes your daily table stuff in Lua. I found an about page about it on Reed Copsey's site, which explains the big O notation quite well. Quicksorting is a related subject and you should look into that as well. So if you do not use tables properly, you will be stuck with it your whole life and never know what you could have done way more efficiently. Element data does not have that issue as far as I am concerned and is a pure way of sharing simple data across. Image source: http://www.daveperrett.com/articles/201 ... -notation/ Important information that you might find useful transferring over the server and a client are usernames and player IDs and such, these are something you can store in many ways. At the end of the day, no one really sees a big difference in the game. They all have a main objective, which is to store data and share or update it if it is called by something. If you want to use tables, go ahead, if you want to use element data, go ahead, if you want to use JSON, go ahead, if you want to use XML, go ahead, if you want to use YML, go ahead, if you want to use SQL, go ahead, if you want to use a flat file database, go ahead, does not matter what you use, the same result will still appear. Here is the element data version of the "ignore messages" code; function setMessagesEnabled( player, enabled ) if ( isElement( player ) ) and ( type( enabled ) == "boolean" ) then if ( getElementData( player, "pm:ignore" ) ) and ( not enabled ) then removeElementData( player, "pm:ignore" ) else setElementData( player, "pm:ignore", enabled, false ) end return true end return false end addCommandHandler( "togpm" function( player, cmd ) local newState = getElementData( player, "pm:ignore" ) and false or true if ( setMessagesEnabled( player, newState ) ) then outputChatBox( "You're now " .. ( newState and "receiving" or "ignoring" ) .. " incoming private messages.", player, 220, 175, 20, false ) end end ) addCommandHandler( "pm", function( player, cmd, name, ... ) -- Whatever code you have in there -- Add the following before receiving a message if ( getElementData( player, "pm:ignore" ) ) then outputChatBox( "That player doesn't like you right now.", player, 245, 20, 20, false ) return end end )
  19. Yes, that is another way of doing it. I'll make up an additional example first thing in the morning, unless you've figured it out.
  20. Well, you can do that in many ways, let's go for tables as you mentioned that. local ignoredPlayers = { } function setMessagesEnabled( player, enabled ) if ( isElement( player ) ) and ( type( enabled ) == "boolean" ) then ignoredPlayers[ player ] = enabled return true end return false end addCommandHandler( "togpm" function( player, cmd ) local newState = ignoredPlayers[ player ] and false or true if ( setMessagesEnabled( player, newState ) ) then outputChatBox( "You're now " .. ( newState and "receiving" or "ignoring" ) .. " incoming private messages.", player, 220, 175, 20, false ) end end ) addCommandHandler( "pm", function( player, cmd, name, ... ) -- Whatever code you have in there -- Add the following before receiving a message if ( ignoredPlayers[ personToReceive ] ) then outputChatBox( "That player doesn't like you right now.", player, 245, 20, 20, false ) return end end ) That PM system tutorial works, yes, but it's not advanced enough to recognize partial names. It should do the trick however. You can find the function for partial names in the "Useful Functions" page of the Wiki site.
  21. This is probably what you are looking for: https://wiki.multitheftauto.com/wiki/DxDrawRectangle3D.
  22. And uh.. Plugins have nothing to do with objects and maps, except that plugins initialize the objects. Other than that, plugins are a separate subject and are similar to MTA, except that MTA has more advanced resource system.
  23. myonlake

    Another Q

    Because you're not saving nor getting anything except the current data, which you want to update... What do you want to update it to? Why do you want it to update constantly?
  24. Tables aren't saved permanently. They are unloaded as the resource it is in is stopped. You can use tables for quick temporary saving or simply storing semi-big data for quick access, but you always have to make the table again. There is a Wiki page regarding XML: https://wiki.multitheftauto.com/wiki/Xml The functions related to XML are included on the article, you can use those to get started.
  25. You can use either SQLite, MySQL or XML as storage. I suggest using MySQL if it's a big system and requires most of the features that come with SQL, and if you want to edit databases via phpMyAdmin. Almost all game servers support MySQL, you should make sure you have that feature as you never know when you need it around eventually, it's good to have that feature. MySQL queries don't kill the server, you won't have to worry about that. If it wasn't efficient enough then no one would use it in the first place. You can also make a temporary queue for queries and do the query statements over time if you want to, this way you can balance the load. You can use XML to save queries, this way you won't lose the queries if the server crashes. You can also run XML files through a custom made executeable and then use it to finish the queue if the server crashes and you want to manually do the queries. If you don't necessarily need all the features of MySQL or don't need phpMyAdmin or so, then go for SQLite. You can transfer to MySQL quite easily if you ever needed to.
×
×
  • Create New...