Jump to content

Incama

Members
  • Posts

    35
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Incama

  1. Solution to the following error: -- Unable to convert: undefined to type: String Anyone having problems importing dffs (exported from blender ) into 3ds max should change the following file: **DFFimp.ms** from this (line 136): to this: Applicable to Goldfish's 3ds max script.
  2. Does it always return the same numbers after multiple runs? IMHO you're seeing float point math's inaccuracy here.
  3. If it's still relevant, you can use the GameQ PHP library (as far as i know this is the same that game-state.net uses) for that. https://github.com/Austinb/GameQ
  4. Hey everyone! @TEDERIs released a MTA ASE bytecode reader last year, i made a version of it in Python. It's not the greatest python code but it works and maybe it is useful for someone. I plan to build on it in the future. https://github.com/Incama2/ase2json_py Original library: https://github.com/tederis/ase2json Sample output: [ { "ip": "46.174.49.47", "port": 22099, "playersCount": 15, "maxPlayersCount": 60, "gameName": "", "serverName": "MTA | Corona | Role Play", "modeName": "", "mapName": "", "version": "1.6n", "passworded": false, "players": [], "httpPort": 32099 }, { "ip": "46.174.48.113", "port": 22003, "playersCount": 5, "maxPlayersCount": 30, "gameName": "", "serverName": "MTA Province Freeroam [vk.com/mtaprovincefreeroam]", "modeName": "", "mapName": "", "version": "1.6n", "passworded": false, "players": [], "httpPort": 32003 }, { "ip": "46.174.50.52", "port": 22038, "playersCount": 0, "maxPlayersCount": 30, "gameName": "", "serverName": "Default MTA Server", "modeName": "", "mapName": "", "version": "1.6n", "passworded": true, "players": [], "httpPort": 32038 }, { "ip": "46.174.50.52", "port": 22004, "playersCount": 0, "maxPlayersCount": 30, "gameName": "", "serverName": "MTA PROVINCE FAKE | 1 SERVER | ", "modeName": "", "mapName": "", "version": "1.6n", "passworded": true, "players": [], "httpPort": 32004 }, { "ip": "46.174.50.52", "port": 22008, "playersCount": 6, "maxPlayersCount": 100, "gameName": "", "serverName": "Fenix Provincial || BETA 2.0 || Offical Server #1", "modeName": "", "mapName": "", "version": "1.6n", "passworded": false, "players": [], "httpPort": 32008 }, ... { "ip": "37.187.207.95", "port": 22003, "playersCount": 0, "maxPlayersCount": 200, "gameName": "", "serverName": "Korkmaz Roleplay V1 Beta", "modeName": "", "mapName": "", "version": "1.4", "passworded": false, "players": [], "httpPort": 22005 }, { "ip": "88.253.134.70", "port": 22003, "playersCount": 8, "maxPlayersCount": 200, "gameName": "", "serverName": "Diablo Roleplay|200K Giris|Mal Varligi Veriliyor|Hayallerini Yasat Turk Real Life Gercek", "modeName": "", "mapName": "", "version": "1.4", "passworded": false, "players": [], "httpPort": 0 }, { "ip": "85.102.56.176", "port": 22003, "playersCount": 4, "maxPlayersCount": 500, "gameName": "", "serverName": "Pablo Roleplay ❄ Amerikan Roleplay'ın Nirvanası ..", "modeName": "", "mapName": "", "version": "1.4", "passworded": false, "players": [], "httpPort": 0 }, { "ip": "37.187.242.161", "port": 19998, "playersCount": 0, "maxPlayersCount": 16, "gameName": "", "serverName": "PAC OSO Clanserver", "modeName": "", "mapName": "", "version": "1.3", "passworded": true, "players": [], "httpPort": 0 }, { "ip": "37.187.242.161", "port": 22000, "playersCount": 0, "maxPlayersCount": 8, "gameName": "", "serverName": "Party And Co Maptesting Server", "modeName": "", "mapName": "", "version": "1.3", "passworded": true, "players": [], "httpPort": 0 }, { "ip": "37.187.242.161", "port": 19999, "playersCount": 0, "maxPlayersCount": 32, "gameName": "", "serverName": "PAC ASO Clanserver", "modeName": "", "mapName": "", "version": "1.3", "passworded": true, "players": [], "httpPort": 0 }, { "ip": "37.187.242.161", "port": 19005, "playersCount": 0, "maxPlayersCount": 12, "gameName": "", "serverName": "PAC 3xC Clan server", "modeName": "", "mapName": "", "version": "1.3", "passworded": true, "players": [], "httpPort": 0 }, { "ip": "46.174.50.52", "port": 22041, "playersCount": 0, "maxPlayersCount": 30, "gameName": "", "serverName": "GTA GARAGE CLUB CR 1.3 [ Пароль в паблике. ]", "modeName": "", "mapName": "", "version": "1.3", "passworded": true, "players": [], "httpPort": 0 } ] It uses Python 2.7
  5. Incama

    MTA ASE Parser

    Hi all, great work @TEDERIs. Since i'm not really good at c++ (and as far as i know if you want to use it for example a web API it's not the greatest) i made a version of the code in python. If someone can use it that's great. https://github.com/Incama2/ase2json_py
  6. This is the single best thing that ever happened in the MTA ecosystem. Being able to hire c# devs to do MTA programming. Great job!
  7. it will but you benefit more than you lose.
  8. https://dev.prineside.com/en/gtasa_samp_model_id/ Search for 'wire' and then removeWorldModel them at resourceStart, now you have 100+ free objects IDs. If you want more, you can remove interiors.
  9. Study @TEDERIs terrarian editor, or just go with building blocks, you can make the system perfectly with them. With building blocks it's better, because you don't have to save every interiors dffs (or dff morph data) on the server side for every interior.
  10. I've figured out in the end. Here's the solution: Since you can't pass matrixs with setElementData (just trust me with that) you have to split the matrix into a table and then do the setElementData part. So the scripts now looks like this: setElementData(localPlayer, "bobber:create", true) setElementData(localPlayer, "bobber:pos", {localPlayer.matrix.position.x, localPlayer.matrix.position.y, localPlayer.matrix.position.z, localPlayer.matrix.rotation.x, localPlayer.matrix.rotation.y, localPlayer.matrix.rotation.z}) and then at the onClientElementDataChange side of things you have to do this: local mat = getElementData(player, "bobber:pos") local matrix = Matrix(Vector3(mat[1], mat[2], mat[3]), Vector3(mat[4], mat[5], mat[6])) That's all, and some other minor fixes and tweaks solved my problem. You can lock the post know and thanks for the advices.
  11. local bobbers = {} local lines = {} function start() setElementData(localPlayer, "bobber:create", true) end function createBobber(player, m) if m then if not bobbers[player] then local m = player.matrix:transformPosition(Vector3(0,math.random(3,10),0)) local z = getWaterLevel(m[1], m[2], m[3]) or -0.55 bobbers[player] = createObject(1974,m[1], m[2], z) setObjectScale(bobbers[player], 2) lines[player] = true end else if isElement(bobbers[player]) then destroyElement(bobbers[player]) bobbers[player] = false lines[player] = false end end end addEventHandler("onClientResourceStop", resourceRoot, function() if getElementData(localPlayer, "bobber:create") then setElementData(localPlayer, "bobber:create", false) end end) addEventHandler("onClientElementDataChange", root, function(data, oldv) if data == "bobber:create" then if isElement(source) and getElementType(source) == "player" and isElementStreamedIn(source) then local m = getElementData(source, "bobber:create") or false createBobber(source, m) end end end) addEventHandler("onClientElementStreamIn", root, function() if isElement(source) and getElementType(source) == "player" and getElementData(source, "bobber:create") then if source ~= localPlayer then local m = getElementData(source, "bobber:create") or false if m then createBobber(source, true) end end end end) addEventHandler("onClientElementStreamOut", root, function() if isElement(source) and getElementType(source) == "player" and getElementData(source, "bobber:create") then if source ~= localPlayer then local m = getElementData(source, "bobber:create") or false if m then createBobber(source, false) end end end end) function drawLine() for i,v in pairs(lines) do if v then if isElementStreamedIn(i) then local p = bobbers[i].position local m = fishingSticks[i].matrix:transformPosition(Vector3(0.124, 0.034, 1.29)) dxDrawLine3D(p.x, p.y, p.z, m.x, m.y, m.z, tocolor(0,0,255,200), 0.5) end end end end addEventHandler("onClientRender", root, drawLine) Thanks for the quick answer but the problem lies here. As i said, it works perfectly fine with localPlayer but when i try it with other players on the client side, it just simply doesn't work. I don't know if i'm an idiot or it's a bug. EDIT: This is a piece of the script, i deleted some parts because it's private
  12. Hello everyone! So i'm trying to make a script that places a object in front of the player. Problem is: I have everything client sided and i stream the object with a simple create function and elementDatas (streamin, streamout, elementdatachange), but everytime that it asks for the player's (not localPlayer) position it doesn't take into count the rotation of the player (not localPlayer). For me it places it in the right places, but for other people it shows in way if i would have 0 rotation. I'm using matrixs and transformPosition. Any idea? (i've tryed asking for the localPlayer.matrix and source.matrix in the runcode resource and it indicates everything well)
  13. What does the debugscript says?
  14. Hey guys, can you recommend me any way to import night time vertexs into 3ds max? (i need the night time stuff not the day time, i know that Kams loads that)
  15. No conversion needed, just download SAMP, find the right .img file and extract the models with IMGTools (you can use any other img editor tool). If you're done with that just write a script to load the dff,txd and col. Good luck
  16. I mean you create 2 lines and you put a fading material between the two (you make that material in PhotoShop).
  17. Good job dude, you always make interesting things but to be fair with a bit of knowledge these kinds of things could have been achieved before this too .D
  18. Well there is a way to do it, but it is really complicated and it requires some serious scripting and modelling knowledge but here are the solution in general: - You'll have to make a dynamic model loader It is complicated because you have to make it in a way that the script only loads the model to a certian object whenever it gets loaded (getElementsByType or something), so it loads like 50 object to 1 ID depending on that the object is loaded or not. - You'll have to make the island in 3ds max You have to cut the model into multiple pieces, it is not the most complicated thing. - You'll have to build roads to the model which has been cut to multiple pieces This is the part what takes serious terrain-making skills in 3D. Good luck
  19. Well, there is a couple ways to solve this problem, the easiest is to use the slice tool on your object and cut 2 straight line with it between the polys (btw your method is not the best but let's stick to your imagination now) and then apply a mixed texture (you'll have make it in PS) to that.
  20. Just make all the weapon textures (usually only 1) 100% transparent and then attach an object which is a weapon, that is the only way it is possible to do this.
  21. You cannot make dynamic objects like opening walls etc. thru mapping, you would need some scripting for that, like moveObject.
  22. Incama

    Chat type

    It is possible, yes but first you have to make a custom chat and then you can implement the multi-channel feature.
  23. Use the Wiki's IDE list.
×
×
  • Create New...