Jump to content


RW-MP team
  • Content Count

  • Joined

  • Last visited

Community Reputation

16 Jizzy B.

Recent Profile Visitors

423 profile views
  1. KashCherry

    [ Tutorial ] System of Register / Login on Dini

  2. KashCherry


    Закрыто и перемещено в архив.
  3. Нужно не забывать о совместимости с сампом.
  4. KashCherry

    Вопрос, voice chat.

    И вряд ли будет. Вам так же всего хорошего.
  5. KashCherry

    Идея для сервера.

    Закрыто и перенесено в архив.
  6. KashCherry

    Идея для сервера.

    Легко? Вовсе нет. На самом деле все зависит от версии SA-MP'a портированного мода. Ибо как минимум до той же 0.3.7 нам предстоит еще много работы. Поэтому на текущей стадии большинство модов перенести не так уж просто. Особенно моды, с Role Play режимами, где в основном используются функции новых версий (и плагинов, которые нам еще предстоит портировать), в отличие от тех же DM. (однако вы можете сообщить об возникших проблемах, для их последующего устранения).
  7. KashCherry

    Unsupported plugins

    In this topic, you can write about any plugin that does not work in RW-MP and can be ported. (usually plugins that work through memory hacking) Warning: Before writing a post, make sure that the plugin is not really supported. List of already ported plugins: Pawn.CMD
  8. В данной теме вы можете написать о любом плагине, который не работает в RW-MP и может быть перенесен. (обычно это плагины, которые работают через память) Внимание: перед написанием поста, убедитесь, что плагин действительно не поддерживается. Список уже перенесенных плагинов: Pawn.CMD
  9. KashCherry

    Доработка стримера

  10. Пожалуй стоит закончить на том, что разработчики не имеют представления о реализации сего чуда.
  11. KashCherry

    [ Tutorial ] System of Register / Login on Dini

    If you think about it, didn't you got the idea for new tutorial? (The same tutorial but with mysql). If you need help, you can write me in discord.
  12. KashCherry

    [ Tutorial ] System of Register / Login on Dini

    I think beginners should start with more advantageous things. Only for UCP? Let's reason logically, why, then, does most people use MySQL? Why not files? And above all, MySQL cannot be slower. At least let's look at the dini algorithm. For example, the function dini_Exists: stock dini_Exists(filename[]) { if (fexist(filename)) return true; return false; } So, what do we have: dini_Exists call fexist, but do you really think it's very fast? Then look at this code. Also, functions are called there that have even more operations. This I'm not talking about dini_Set & dini_Get. Firstly, there are lot of tutorials on the internet, or at least documentations on the wiki. Secondly, why MySQL not enough? Thirdly, UCP is only one of advantages, I think many should understand this. And HOW can instability make MySQL useless? You advise beginners to use something that would not be worth. And do not you think that the code using MySQL will be more readable?
  13. KashCherry

    [ Tutorial ] Plugin support

    Binaries of Pawn.CMD with some changes (click) pawncmd.dll pawncmd.so
  14. KashCherry

    [ Tutorial ] Plugin support

    I propose to create a topic in which developers could write unsupported plugins
  15. KashCherry

    [ Tutorial ] Plugin support

    I think many have a question "Does RW-MP support plugins from SA-MP?". I also asked myself this question recently, so I decided to check. And what you think? Many plugins worked perfectly fine. But of course there were some that didn't work, these were plugins that worked through memory hacking. And I think for obvious reasons (It is enough to compile server using a different version of MSVC++ or GCC). But how to make support for RW-MP? You can create issue on GitHub and wait until the author updates the plugin. But what if the time has passed and the author doesn't update the plugin? That's what I wrote in this tutorial. I decided to try myself to update the unsupported RW-MP plugin. My choice was Pawn.CMD. First of all, I read this tutorial. But there were not exactly those addresses that are used in Pawn.CMD. Then I decided to ask ziggi. And now I am ready to share with you. Let's start! 1.) Open RW-MP server in IDA PRO (You can download this on the internet) 2.) Press SHIFT + F12, you will see all strings 3.) Now press ALT+T to find public which we want to hook, in our case this will be OnPlayerCommandText 4.) Left-click on OnPlayerCommandText string 5.) Double click where it is marked yellow 6.) If all is well you must see something like that 7.) Press F5 and IDA will make pseudocode on C language 8.) Where is marked yellow - address of function, you must remember it, now go to the window "IDA View-A" and scroll to the address we remembered 9.) Go to the window "Hex View" and you must see address, which we will be using for Pawn.CMD We got address of OnPlayerCommandText in RW-MP server. Now we should replace address in Pawn.CMD with the one we found: const char *pattern = "\x55\x8B\xEC" /*sub esp,0x8*/ \ "\x83" /*push ebx*/ \ "\xEC\x0C\x53\x8B" /*mov ebx,DWORD PTR [esp+0x14]*/ \ "\x5D" /*push ebp*/ \ "\x0C\x56\x57\x8B" /*mov ebp,DWORD PTR [esp+0x14]*/ \ "\xF9" /*push esi*/ \ "\xC7\x45" /*xor esi,esi*/ \ "\xFC" /*push edi*/ \ "\x00\x00" /*mov edi,ecx*/ \ "\x00\x00\x33\xF6" /*mov DWORD PTR [esp+0x10],esi*/ \ "\x8B\x04\xB7" /*mov eax,DWORD PTR [edi+esi*4]*/ \ "\x85\xC0"; /*test eax,eax*/ But I think that you can do it yourself. Just download source code from this repo and compile with this address. For Linux you must do the same thing. I hope my tutorial helped you.