Jump to content

Mdrst

Moderators
  • Content Count

    81
  • Joined

  • Last visited

  • Days Won

    9

Everything posted by Mdrst

  1. May be related to a TradeDB column/table. Never used it, so it's just a guess.
  2. Depends on where the button implementation is. If you are using Visual Studio, press Ctrl + Shift + F and type the button link, it will show you the proper location.
  3. A while back I noticed Argent City's song is almost a perfect match compared to Studio Ghibli's "A Town with an Ocean View": Has anyone found out if they were as "inspired" with the other songs?
  4. @Unknown You can set up parameters in the debugger, so no need to comment stuff out. Regardless, I think you should start by analyzing "path" variable to see if it contains the proper file location. If it does, then you will have to figure out why RegisterVertexShader is returning an error. Again, this will be much easier with breakpoints.
  5. Attach a debugger and see where the exception occurs. FYI, though, I don't remember having to set up System Language as Chinese. Just change the .res file to en_US.
  6. Yeah, I have to agree with @wolfenx here. The blocked area seems to be a rectangle of width equal to 8 units (since you can teleport every 8 units). I never used YAMMI though, so can't offer much help there. Doesn't seem to be source-related.
  7. First of all, make sure you are sending the correct map birth name in Client: If you changed "Argent City" in GroupServer, change CL_LANGUAGE_MATCH_39, _40 and _41 strings in client side to whatever name your map is. This name in client MUST match the name you typed inside groupserver.cfg. Also check the log inside gameserver called "init.txt" and see if there are any errors. Actually, check all logs for map-related errors. This is all assuming the map worked before you removed garner/magicsea/darkblue. If you haven't tested that yet, I suggest you do it and let me know.
  8. Can you send a video replicating the issue? Also, can you use a GM command to move in the y-axis?
  9. I don't think there is a way to kick players from a party using only Lua code (someone correct me if I'm wrong). I've searched and found no useful functions in the source that could do this. You can't even send a packet to GameServer or GroupServer to kick players, because the two lua functions that can send packets (SendPacket() and SynPacket()) only send them to clients. If you want to do it in source, though, it's quite easy. Inside Expand.h, add this anywhere: inline int lua_LeaveTeam(lua_State* pLS) { T_B int nParaNum = lua_gettop(pLS); bool bSuccess = true; CCharacter* cha = (CCharacter*)lua_touserdata(pLS, 1); CPlayer* ply = nullptr; do { if(nParaNum != 1 || !cha) { bSuccess = false; break; } ply = cha->GetPlayer(); if(!ply) { bSuccess = false; break; } ply->LeaveTeam(); } while(0); if(bSuccess) { lua_pushnumber(pLS, 1); } else { lua_pushnumber(pLS, 0); } return 1; T_E} Inside RegisterLuaGameLogic, add this: REGFN(LeaveTeam); Now you can use your new C++ function in .lua files. To kick everyone once a player leaves a specific map, open the ctrl.lua file inside the map folder, search for "function before_leave_[MAP_NAME]" and call your new function there: function before_leave_garner( role ) -- First, check if character leaving is in a party. local team_size = IsChaInTeam(role) if team_size > 0 then -- A party exists, so we must disband it. for i=0,3,1 do local member = GetTeamCha(role, i) if member ~= nil then LeaveTeam(member) end end LeaveTeam(role) end end
  10. Se o mapa estiver rodando num GameServer com poucos mapas, atingir o limite de 2GB vai demorar. Só monitorar usando o Task Manager mesmo e, caso chegue perto de 1.8GB, limitar as cópias. Esse limite pode estar em 10 cópias ou 80, não da pra saber e vai depender dos motivos que eu citei ali.
  11. Impacta na memória RAM utilizada pelo GameServer que está rodando o mapa. O quanto influencia depende do tamanho do mapa (quantidade de células), quantidade de mobs/players na cópia do mapa e o número de cópias.
  12. The source code from 2016 (2.x) has memory leaks too. I haven't measured it, but I don't doubt that even the compiled binaries from 1.3x may have some leaks too. For UI/Client you can create/change many features with an intermediate level of C++, or even beginner level if you're motivated. For server side, things are... uglier. The C++ standard used was C++98/C++03, and the code is filled with unreadable/complex concepts that were required back then (LIBDBC is a PITA). However, unless you have an extensive knowledge of assembly to fix and hook things, using a compiled binary like the old times is dangerous and your server probably won't last much. V3ct0r mod plugin has made a huge impact on this and made life easier for people without source code.
  13. @wolfenx If you can answer a few questions: 1. The models look very detailed, did you rework parts of MindPower to import these higher-polygons per mesh models? Or can they be used "as-is", with the expected drop in performance? I know you have a private tool to import models from Blender/3DS Max, just wondering if engine modification is also needed. 2. I thought the height difference was just a preview, it seems weird to me having 6 different characters all 'scaled' up/down. The tallest one has more body mass (like Carsise and Lance) so there is a difference, but IMO the shortest one should be less human-like (maybe a dwarf, goblin, elf?)
  14. @V3ct0r The description is fine, thank you! I've started off the section by posting a translated version of the "Tips for making a topic in 'Questions & Help'" topic. I encourage again all portuguese speakers to engage with the section.
  15. Dicas para criar um tópico em "Dúvidas & Ajuda" Olá! Neste tópico darei alguns conselhos que podem te ajudar a obter uma resposta rápida e direta para sua pergunta. (Traduzido do tópico Tips for making a topic in "Questions & Help"). 1. Use a pesquisa do fórum! Você pode tentar traduzir sua pergunta ou partes da sua pergunta para o inglês e usar a ferramenta de busca. Muitos erros são recorrentes e já foram solucionados anteriormente. Para uma busca mais restrita, lembre-se de selecionar a seguinte opção: 2. Formule o problema de forma clara e explícita. O nome do tópico deve refletir o problema. Nomes genéricos como "Ajuda!", "Erro", "Preciso de ajuda" não são permitidos, bem como o abuso de pontos de exclamação. Alguns exemplos de nomes adequados: "Erro conectando o GameServer ao SQL Server", "Script do NPC não funciona", "Como criar um novo item?". 3. Articule o problema de forma clara. Tente deixar o texto da sua dúvida o mais claro possível para que outros membros possam te ajudar. Descreva o problema em todos os detalhes, fornecendo os passos para reproduzir o problema e quais arquivos/programas está utilizando. Um texto bem articulado já contém metade da resposta. Capturas de tela do problema também são bem-vindas. 4. Seja paciente. Após criar um tópico, seja paciente enquanto espera uma resposta. Não 'bumpe' o tópico muito frequentemente e não peça ajuda imediata. Enquanto espera por ajuda, você pode tentar resolver o problema sozinho e/ou atualizar seu tópico com informações adicionais, que podem auxiliar outros membros a descobrir o problema. 5. Certifique-se que seus executáveis rodam em outros PCs. Durante a resolução de um problema, pode ser que você compartilhe seus executáveis com outros membros. Nestes casos, é importante que você deixe claro todos os passos extras necessários para a execução do seu programa. Por exemplo, você pode ter alterado o argumento de inicialização "startgame" para "iniciarjogo". O mesmo pode acontecer com uma porta de conexão alterada ou uma .dll faltando. Além disso, fornecer um escaneamento do VirusTotal junto ao tópico pode convencer membros a baixarem seu executável e testá-los em suas máquinas. 6. Não mande mensagens diretas (DMs/PMs, Skype, Discord, etc.) para outros membros pedindo ajuda. Não importune outros membros com mensagens diretas contendo perguntas para resolução de problemas. Todos temos nossas outras atividades e, ao manter as perguntas nas seções adequadas, garantimos que outros membros poderão acessar as respostas no futuro. 7. Use o botão de "Obrigado" para agradecer outros participantes. Ao final de todo post existe um botão que pode ser utilizado para agradecer outros participantes por colaborações importantes. Fazendo isso, você recompensa outro membro pelo tempo investido, mostra seu agradecimento e instiga outros usuários a participarem das discussões. Use com sabedoria!
  16. @d3ux, @ShadowJr You can find a list of chinese private servers here. Some of those require a chinese cellphone number to download the game. If any of you manage to download it, please share with us!
  17. Hi @V3ct0r, For now I think a Portuguese section containing only Questions & Help ("Dúvidas & Ajuda") would be more than enough to assist those who followed english guides but stumbled upon errors. I'll do my best helping whenever a topic pops up.
  18. Roblox is capped at 100 players if I googled it right, so a full scale MMO wouldn't be possible. However, the scripting in Roblox is also done in Lua, so porting the interactions wouldn't be impossible (still quite difficult). There are a few RPG-like mods for Roblox but as the game wasn't built with scalability in mind they can't support many players.
  19. You can find a proof of concept here by @Snre3n. You may need to do some quality of life improvements, but that is left as an exercise for the reader
  20. Hi @koso This is possible if you work with the client/server source. Inside EnterMap gameserver function, you can make it send all mazes opening times/intervals and then show it on a separate interface. This way you dont need to sync anything, and if you change maze times it will update accordingly. If you want to do it client-side only you will have to hardcode the opening times/intervals, deal with timezones and make sure the client side matches the server intervals. Edit: doing this without source code as an interface is not possible (but possible with NPCs by using lua scripts). It may become possible if someone develops a mod for V3ct0rs plugin, as it works by injecting code into .exes
  21. Hello everyone, just starting this poll to see how many portuguese speakers there are in our community. Old ServerDev had a portuguese section, so maybe we could get one here too.
  22. Hi V3ct0r, check my PM :)

    1. V3ct0r

      V3ct0r

      Hello!

       

      I answered you.

  23. IIRC, inside Receiver.cpp you can add this check: - Check if packet header containing size is atleast 6 or 8 bytes long (0 for offset, 2 for packet_len, 4 for SESS, 2 for CMD id and maybe 2 more for packet counter from CO) if(m_rpk.GetPktLen() >_len_inc && m_datasock->m_isProcess && m_rpk.GetPktLen() > 8) You can Disconnect() if it isn't.
×
×
  • Create New...