鱼C论坛

 找回密码
 立即注册
查看: 2450|回复: 28

求助国外的源码

[复制链接]
发表于 2017-8-12 13:21:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 916074607 于 2017-8-13 17:33 编辑

我这个DLL我在里面打上的中文编译出来注入显示的是问号怎么办

如图

如图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-12 13:27:58 | 显示全部楼层
采用是Unicode还是ANSI字符集
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-12 13:29:54 | 显示全部楼层
A_Elite 发表于 2017-8-12 13:27
采用是Unicode还是ANSI字符集

我用编码转换成Unicode和UTF8字符集也不行用16进制软件查看是中文但是注入了就是问号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-12 13:32:03 | 显示全部楼层
能发dll在中的内容吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-12 13:32:58 | 显示全部楼层
A_Elite 发表于 2017-8-12 13:27
采用是Unicode还是ANSI字符集

但他源文件是ASCII字符集
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-12 13:36:42 | 显示全部楼层
A_Elite 发表于 2017-8-12 13:32
能发dll在中的内容吗?

你是要所有源还是改的那个文件源
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-12 13:36:54 | 显示全部楼层
乱码一定是字符集的问题。你最好发下代码。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-12 13:37:23 | 显示全部楼层
就是你出问题的那个地方的代码、
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-12 13:38:39 | 显示全部楼层
A_Elite 发表于 2017-8-12 13:37
就是你出问题的那个地方的代码、
  1.                         static float rainbow;
  2.                         rainbow += 0.005f;
  3.                         if (rainbow > 1.f) rainbow = 0.f;



  4.                         Render::Text(10, 10, Color::FromHSB(rainbow, 1.f, 1.f), Render::Fonts::Menu, "成功");
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-12 13:41:25 | 显示全部楼层
FromHSB函数的第一个参数是什么类型,应该不是浮点型。需要转换一下?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-12 13:43:37 | 显示全部楼层
A_Elite 发表于 2017-8-12 13:41
FromHSB函数的第一个参数是什么类型,应该不是浮点型。需要转换一下?

这个是前面所有代码因为是老外的我都没有看懂
  1. // Funtion Typedefs
  2. typedef void(__thiscall* DrawModelEx_)(void*, void*, void*, const ModelRenderInfo_t&, matrix3x4*);
  3. typedef void(__thiscall* PaintTraverse_)(PVOID, unsigned int, bool, bool);
  4. typedef bool(__thiscall* InPrediction_)(PVOID);
  5. typedef void(__stdcall *FrameStageNotifyFn)(ClientFrameStage_t);
  6. typedef void(__thiscall* RenderViewFn)(void*, CViewSetup&, CViewSetup&, int, int);

  7. using OverrideViewFn = void(__fastcall*)(void*, void*, CViewSetup*);
  8. typedef float(__stdcall *oGetViewModelFOV)();

  9. // Function Pointers to the originals
  10. PaintTraverse_ oPaintTraverse;
  11. DrawModelEx_ oDrawModelExecute;
  12. FrameStageNotifyFn oFrameStageNotify;
  13. OverrideViewFn oOverrideView;
  14. RenderViewFn oRenderView;

  15. // Hook function prototypes
  16. void __fastcall PaintTraverse_Hooked(PVOID pPanels, int edx, unsigned int vguiPanel, bool forceRepaint, bool allowForce);
  17. bool __stdcall Hooked_InPrediction();
  18. void __fastcall Hooked_DrawModelExecute(void* thisptr, int edx, void* ctx, void* state, const ModelRenderInfo_t &pInfo, matrix3x4 *pCustomBoneToWorld);
  19. bool __stdcall CreateMoveClient_Hooked(/*void* self, int edx,*/ float frametime, CUserCmd* pCmd);
  20. void  __stdcall Hooked_FrameStageNotify(ClientFrameStage_t curStage);
  21. void __fastcall Hooked_OverrideView(void* ecx, void* edx, CViewSetup* pSetup);
  22. float __stdcall GGetViewModelFOV();
  23. void __fastcall Hooked_RenderView(void* ecx, void* edx, CViewSetup &setup, CViewSetup &hudViewSetup, int nClearFlags, int whatToDraw);

  24. // VMT Managers
  25. namespace Hooks
  26. {;
  27.         // VMT Managers
  28.         Utilities::Memory::VMTManager VMTPanel; // Hooking drawing functions
  29.         Utilities::Memory::VMTManager VMTClient; // Maybe CreateMove
  30.         Utilities::Memory::VMTManager VMTClientMode; // CreateMove for functionality
  31.         Utilities::Memory::VMTManager VMTModelRender; // DrawModelEx for chams
  32.         Utilities::Memory::VMTManager VMTPrediction; // InPrediction for no vis recoil
  33.         Utilities::Memory::VMTManager VMTPlaySound; // Autoaccept
  34.         Utilities::Memory::VMTManager VMTRenderView;
  35. };
  36. // Undo our hooks
  37. void Hooks::UndoHooks()
  38. {
  39.         VMTPanel.RestoreOriginal();
  40.         VMTPrediction.RestoreOriginal();
  41.         VMTModelRender.RestoreOriginal();
  42.         VMTClientMode.RestoreOriginal();
  43. }

  44. // Initialise all our hooks
  45. void Hooks::Initialise()
  46. {
  47.         // Panel hooks for drawing to the screen via surface functions
  48.         VMTPanel.Initialise((DWORD*)Interfaces::Panels);
  49.         oPaintTraverse = (PaintTraverse_)VMTPanel.HookMethod((DWORD)&PaintTraverse_Hooked, Offsets::VMT::Panel_PaintTraverse);
  50.         //Utilities::Log("Paint Traverse Hooked");

  51.         // No Visual Recoi        l
  52.         VMTPrediction.Initialise((DWORD*)Interfaces::Prediction);
  53.         VMTPrediction.HookMethod((DWORD)&Hooked_InPrediction, 14);
  54.         //Utilities::Log("InPrediction Hooked");

  55.         // Chams
  56.         VMTModelRender.Initialise((DWORD*)Interfaces::ModelRender);
  57.         oDrawModelExecute = (DrawModelEx_)VMTModelRender.HookMethod((DWORD)&Hooked_DrawModelExecute, Offsets::VMT::ModelRender_DrawModelExecute);
  58.         //Utilities::Log("DrawModelExecute Hooked");

  59.         // Setup ClientMode Hooks
  60.         VMTClientMode.Initialise((DWORD*)Interfaces::ClientMode);
  61.         VMTClientMode.HookMethod((DWORD)CreateMoveClient_Hooked, 24);

  62.         oOverrideView = (OverrideViewFn)VMTClientMode.HookMethod((DWORD)&Hooked_OverrideView, 18);
  63.         VMTClientMode.HookMethod((DWORD)&GGetViewModelFOV, 35);

  64.         // Setup client hooks
  65.         VMTClient.Initialise((DWORD*)Interfaces::Client);
  66.         oFrameStageNotify = (FrameStageNotifyFn)VMTClient.HookMethod((DWORD)&Hooked_FrameStageNotify, 36);

  67. }

  68. void MovementCorrection(CUserCmd* pCmd)
  69. {

  70. }

  71. //---------------------------------------------------------------------------------------------------------
  72. //                                         Hooked Functions
  73. //---------------------------------------------------------------------------------------------------------

  74. // Animated ClanTag Function
  75. void SetClanTag(const char* tag, const char* name)
  76. {
  77.         static auto pSetClanTag = reinterpret_cast<void(__fastcall*)(const char*, const char*)>(((DWORD)Utilities::Memory::FindPattern("engine.dll", (PBYTE)"\x53\x56\x57\x8B\xDA\x8B\xF9\xFF\x15\x00\x00\x00\x00\x6A\x24\x8B\xC8\x8B\x30", "xxxxxxxxx????xxxxxx")));
  78.         pSetClanTag(tag, name);
  79. }

  80. // Blank Clantag
  81. void NoClantag()
  82. {
  83.         SetClanTag("", "");
  84. }

  85. // Clantag Functions
  86. void ClanTag()
  87. {
  88.         int speed = Menu::Window.MiscTab.OtherClantagspeed.GetValue();
  89.         static int counter = 0;
  90.         switch (Menu::Window.MiscTab.OtherClantag.GetIndex())
  91.         {
  92.         case 0:
  93.                 // No
  94.                 break;
  95.         case 1:
  96.         {
  97.                 static int motion = 0;
  98.                 int ServerTime = (float)Interfaces::Globals->interval_per_tick * hackManager.pLocal()->GetTickBase() * speed;

  99.                 if (counter % 48 == 0)
  100.                         motion++;
  101.                 int value = ServerTime % 20;
  102.                 switch (value) {
  103.                 case 0:SetClanTag("hake", "hake"); break;
  104.                 case 1:SetClanTag("hake", "hake"); break;
  105.                 case 2:SetClanTag("hake", "hake"); break;
  106.                 case 3:SetClanTag("hake", "hake"); break;
  107.                 case 4:SetClanTag("hake", "hake"); break;
  108.                 case 5:SetClanTag("hake", "hake"); break;
  109.                 case 6:SetClanTag("hake", "hake"); break;
  110.                 case 7:SetClanTag("hake", "hake"); break;
  111.                 case 8:SetClanTag("hake", "hake"); break;
  112.                 case 9:SetClanTag("cuck", "hake"); break;
  113.                 case 10:SetClanTag("hake", "hake"); break;
  114.                 case 11:SetClanTag("hake", "hake"); break;
  115.                 case 12:SetClanTag("hake", "hake"); break;
  116.                 case 13:SetClanTag("hake", "hake"); break;
  117.                 case 14:SetClanTag("hake", "hake"); break;
  118.                 case 15:SetClanTag("hake", "hake"); break;
  119.                 case 16:SetClanTag("hake", "hake"); break;
  120.                 case 17:SetClanTag("hake", "hake"); break;
  121.                 case 18:SetClanTag("hake", "hake"); break;
  122.                 case 19:SetClanTag("hake", "hake"); break;
  123.                 }
  124.                 counter++;
  125.         }
  126.         break;
  127.         case 2:
  128.         {
  129.                 static int motion = 0;
  130.                 int ServerTime = (float)Interfaces::Globals->interval_per_tick * hackManager.pLocal()->GetTickBase() * speed;

  131.                 if (counter % 48 == 0)
  132.                         motion++;
  133.                 int value = ServerTime % 42;
  134.                 switch (value) {
  135.                 case 0: SetClanTag("/      ", "Complex"); break;
  136.                 case 1: SetClanTag("-      ", "Complex"); break;
  137.                 case 2: SetClanTag("C      ", "Complex"); break;
  138.                 case 3: SetClanTag("C/     ", "Complex"); break;
  139.                 case 4: SetClanTag("C-     ", "Complex"); break;
  140.                 case 5: SetClanTag("Co     ", "Complex"); break;
  141.                 case 6: SetClanTag("Co/    ", "Complex"); break;
  142.                 case 7: SetClanTag("Co-    ", "Complex"); break;
  143.                 case 8: SetClanTag("Com    ", "Complex"); break;
  144.                 case 9: SetClanTag("Com/   ", "Complex"); break;
  145.                 case 10:SetClanTag("Com-   ", "Complex"); break;
  146.                 case 11:SetClanTag("Comp   ", "Complex"); break;
  147.                 case 12:SetClanTag("Comp/  ", "Complex"); break;
  148.                 case 13:SetClanTag("Comp-  ", "Complex"); break;
  149.                 case 14:SetClanTag("Compl  ", "Complex"); break;
  150.                 case 15:SetClanTag("Compl/ ", "Complex"); break;
  151.                 case 16:SetClanTag("Compl- ", "Complex"); break;
  152.                 case 17:SetClanTag("Comple ", "Complex"); break;
  153.                 case 18:SetClanTag("Comple/", "Complex"); break;
  154.                 case 19:SetClanTag("Comple-", "Complex"); break;
  155.                 case 20:SetClanTag("Complex", "Complex"); break;
  156.                 case 21:SetClanTag("Comple-", "Complex"); break;
  157.                 case 22:SetClanTag("Comple/", "Complex"); break;
  158.                 case 23:SetClanTag("Comple ", "Complex"); break;
  159.                 case 24:SetClanTag("Compl- ", "Complex"); break;
  160.                 case 25:SetClanTag("Compl/ ", "Complex"); break;
  161.                 case 26:SetClanTag("Compl  ", "Complex"); break;
  162.                 case 27:SetClanTag("Comp-  ", "Complex"); break;
  163.                 case 28:SetClanTag("Comp/  ", "Complex"); break;
  164.                 case 29:SetClanTag("Comp   ", "Complex"); break;
  165.                 case 30:SetClanTag("Com-   ", "Complex"); break;
  166.                 case 31:SetClanTag("Com/   ", "Complex"); break;
  167.                 case 32:SetClanTag("Com    ", "Complex"); break;
  168.                 case 33:SetClanTag("Co-    ", "Complex"); break;
  169.                 case 34:SetClanTag("Co/    ", "Complex"); break;
  170.                 case 35:SetClanTag("Co     ", "Complex"); break;
  171.                 case 36:SetClanTag("C-     ", "Complex"); break;
  172.                 case 37:SetClanTag("C/     ", "Complex"); break;
  173.                 case 38:SetClanTag("C      ", "Complex"); break;
  174.                 case 39:SetClanTag("-      ", "Complex"); break;
  175.                 case 40:SetClanTag("/      ", "Complex"); break;
  176.                 case 41:SetClanTag("       ", "Complex"); break;
  177.                 }
  178.                 counter++;
  179.         }
  180.         break;
  181.         case 3:
  182.         {
  183.                 static int motion = 0;
  184.                 int ServerTime = (float)Interfaces::Globals->interval_per_tick * hackManager.pLocal()->GetTickBase() * speed;

  185.                 if (counter % 48 == 0)
  186.                         motion++;
  187.                 int value = ServerTime % 3;
  188.                 switch (value) {
  189.                 case 0:SetClanTag(">> Complex <<", "pasteware"); break;
  190.                 case 1:SetClanTag(">Complex<", "pasteware"); break;
  191.                 }
  192.                 counter++;
  193.         }
  194.         break;
  195.         case 4:
  196.                 // stainless
  197.                 SetClanTag("\r", "\r");
  198.                 break;
  199.         case 5:
  200.                 SetClanTag("[VALV\xE1\xB4\xB1]", "Valve");
  201.                 break;
  202.         case 6:
  203.         {
  204.                 static int motion = 0;
  205.                 int ServerTime = (float)Interfaces::Globals->interval_per_tick * hackManager.pLocal()->GetTickBase() * speed;

  206.                 if (counter % 48 == 0)
  207.                         motion++;
  208.                 int value = ServerTime % 7;
  209.                 switch (value) {
  210.                 case 0:SetClanTag("dick", "pasteware"); break;
  211.                 case 1:SetClanTag("fuck", "pasteware"); break;
  212.                 case 2:SetClanTag("bitch", "pasteware"); break;
  213.                 case 3:SetClanTag("cock", "pasteware"); break;
  214.                 case 4:SetClanTag("coon", "pasteware"); break;
  215.                 case 5:SetClanTag("nigger", "pasteware"); break;
  216.                 case 6:SetClanTag("cunt", "pasteware"); break;
  217.                 }
  218.                 counter++;
  219.         }
  220.         break;
  221.         case 7:
  222.                 time_t now = time(0);
  223.                 char timestamp[10] = "";
  224.                 strftime(timestamp, 10, "[%H:%M:%S]", localtime(&now));
  225.                 SetClanTag(timestamp, "Time");
  226.                 break;
  227.        
  228.         }
  229. }

  230. // Rank Revealer
  231. void MsgFunc_ServerRankRevealAll()
  232. {
  233.         using MsgFunc_ServerRankRevealAllFn = bool(__cdecl*)(float*);
  234.         static MsgFunc_ServerRankRevealAllFn MsgFunc_ServerRankRevealAll = reinterpret_cast<MsgFunc_ServerRankRevealAllFn>((PDWORD)Utilities::Memory::FindPattern("client.dll", (PBYTE)"\x55\x8B\xEC\x8B\x0D\x00\x00\x00\x00\x68\x00\x00\x00\x00", "xxxxx????x????"));

  235.         float fArray[3];
  236.         fArray[0] = 0.f;
  237.         fArray[1] = 0.f;
  238.         fArray[2] = 0.f;

  239.         MsgFunc_ServerRankRevealAll(fArray);
  240. }

  241. BYTE bMoveData[0x200];

  242. // Movement Prediction
  243. void Prediction(CUserCmd* pCmd, IClientEntity* LocalPlayer)
  244. {
  245.         if (Interfaces::MoveHelper && Menu::Window.RageBotTab.AimbotEnable.GetState() && Menu::Window.RageBotTab.AccuracyPrediction.GetState() && LocalPlayer->IsAlive())
  246.         {
  247.                 float curtime = Interfaces::Globals->curtime;
  248.                 float frametime = Interfaces::Globals->frametime;
  249.                 int iFlags = LocalPlayer->GetFlags();

  250.                 Interfaces::Globals->curtime = (float)LocalPlayer->GetTickBase() * Interfaces::Globals->interval_per_tick;
  251.                 Interfaces::Globals->frametime = Interfaces::Globals->interval_per_tick;

  252.                 Interfaces::MoveHelper->SetHost(LocalPlayer);

  253.                 Interfaces::GamePrediction->SetupMove(LocalPlayer, pCmd, nullptr, bMoveData);
  254.                 Interfaces::GameMovement->ProcessMovement(LocalPlayer, bMoveData);
  255.                 Interfaces::GamePrediction->FinishMove(LocalPlayer, pCmd, bMoveData);

  256.                 Interfaces::MoveHelper->SetHost(0);

  257.                 Interfaces::Globals->curtime = curtime;
  258.                 Interfaces::Globals->frametime = frametime;
  259.                 *LocalPlayer->GetPointerFlags() = iFlags;
  260.         }
  261. }

  262. // Create moves
  263. bool __stdcall CreateMoveClient_Hooked(float frametime, CUserCmd* pCmd)
  264. {
  265.         if (!pCmd->command_number)
  266.                 return true;



  267.         if (Interfaces::Engine->IsConnected() && Interfaces::Engine->IsInGame())
  268.         {

  269.                 PVOID pebp;
  270.                 __asm mov pebp, ebp;
  271.                 bool* pbSendPacket = (bool*)(*(DWORD*)pebp - 0x1C);
  272.                 bool& bSendPacket = *pbSendPacket;
  273.                 CClientState* pClient;
  274.                 INetChannel* pNet;
  275.                 CInput* pInput;

  276.                 if (Menu::Window.MiscTab.OtherClantag.GetIndex() > 0)
  277.                         ClanTag();

  278.                 //        CUserCmd* cmdlist = *(CUserCmd**)((DWORD)Interfaces::pInput + 0xEC);
  279.                 //        CUserCmd* pCmd = &cmdlist[sequence_number % 150];


  280.                 // Backup for safety
  281.                 Vector origView = pCmd->viewangles;
  282.                 Vector viewforward, viewright, viewup, aimforward, aimright, aimup;
  283.                 Vector qAimAngles;
  284.                 qAimAngles.Init(0.0f, pCmd->viewangles.y, 0.0f);
  285.                 AngleVectors(qAimAngles, &viewforward, &viewright, &viewup);

  286.                 // Do da hacks
  287.                 IClientEntity *pLocal = Interfaces::EntList->GetClientEntity(Interfaces::Engine->GetLocalPlayer());
  288.                 if (Interfaces::Engine->IsConnected() && Interfaces::Engine->IsInGame() && pLocal && pLocal->IsAlive())
  289.                         Hacks::MoveHacks(pCmd, bSendPacket);

  290.                 // Movement Fix
  291.                 qAimAngles.Init(0.0f, GetAutostrafeView().y, 0.0f);
  292.                 AngleVectors(qAimAngles, &viewforward, &viewright, &viewup);
  293.                 qAimAngles.Init(0.0f, pCmd->viewangles.y, 0.0f);
  294.                 AngleVectors(qAimAngles, &aimforward, &aimright, &aimup);
  295.                 Vector vForwardNorm;                Normalize(viewforward, vForwardNorm);
  296.                 Vector vRightNorm;                        Normalize(viewright, vRightNorm);
  297.                 Vector vUpNorm;                                Normalize(viewup, vUpNorm);

  298.                 // Movement Prediction
  299.                 if (Interfaces::Engine->IsConnected() && Interfaces::Engine->IsInGame() && pLocal)
  300.                 {
  301.                         if (pLocal->IsAlive())
  302.                         {
  303.                                 Prediction(pCmd, pLocal);
  304.                         }
  305.                 }

  306.                 // Original shit for movement correction
  307.                 float forward = pCmd->forwardmove;
  308.                 float right = pCmd->sidemove;
  309.                 float up = pCmd->upmove;
  310.                 if (forward > 450) forward = 450;
  311.                 if (right > 450) right = 450;
  312.                 if (up > 450) up = 450;
  313.                 if (forward < -450) forward = -450;
  314.                 if (right < -450) right = -450;
  315.                 if (up < -450) up = -450;
  316.                 pCmd->forwardmove = DotProduct(forward * vForwardNorm, aimforward) + DotProduct(right * vRightNorm, aimforward) + DotProduct(up * vUpNorm, aimforward);
  317.                 pCmd->sidemove = DotProduct(forward * vForwardNorm, aimright) + DotProduct(right * vRightNorm, aimright) + DotProduct(up * vUpNorm, aimright);
  318.                 pCmd->upmove = DotProduct(forward * vForwardNorm, aimup) + DotProduct(right * vRightNorm, aimup) + DotProduct(up * vUpNorm, aimup);

  319.                 // Angle normalisation
  320.                 if (Menu::Window.MiscTab.OtherSafeMode.GetState())
  321.                 {
  322.                         GameUtils::NormaliseViewAngle(pCmd->viewangles);

  323.                         if (pCmd->viewangles.z != 0.0f)
  324.                         {
  325.                                 pCmd->viewangles.z = 0.00;
  326.                         }

  327.                         if (pCmd->viewangles.x < -89 || pCmd->viewangles.x > 89 || pCmd->viewangles.y < -180 || pCmd->viewangles.y > 180)
  328.                         {
  329.                                 GameUtils::NormaliseViewAngle(pCmd->viewangles);
  330.                                 Beep(750, 800);
  331.                                 if (pCmd->viewangles.x < -89 || pCmd->viewangles.x > 89 || pCmd->viewangles.y < -180 || pCmd->viewangles.y > 180)
  332.                                 {
  333.                                         pCmd->viewangles = origView;
  334.                                         pCmd->sidemove = right;
  335.                                         pCmd->forwardmove = forward;
  336.                                 }
  337.                         }
  338.                 }

  339.                 if (pCmd->viewangles.x > 90)
  340.                 {
  341.                         pCmd->forwardmove = -pCmd->forwardmove;
  342.                 }

  343.                 if (pCmd->viewangles.x < -90)
  344.                 {
  345.                         pCmd->forwardmove = -pCmd->forwardmove;
  346.                 }

  347.                 if (bSendPacket)
  348.                         LastAngleAA = pCmd->viewangles;
  349.         }

  350.         return false;
  351. }


  352. // Paint Traverse Hooked function
  353. void __fastcall PaintTraverse_Hooked(PVOID pPanels, int edx, unsigned int vguiPanel, bool forceRepaint, bool allowForce)
  354. {
  355.         if (Menu::Window.VisualsTab.OtherNoScope.GetState() && !strcmp("HudZoom", Interfaces::Panels->GetName(vguiPanel)))
  356.                 return;

  357.         oPaintTraverse(pPanels, vguiPanel, forceRepaint, allowForce);

  358.         static unsigned int FocusOverlayPanel = 0;
  359.         static bool FoundPanel = false;

  360.         if (!FoundPanel)
  361.         {
  362.                 PCHAR szPanelName = (PCHAR)Interfaces::Panels->GetName(vguiPanel);
  363.                 if (strstr(szPanelName, "MatSystemTopPanel"))
  364.                 {
  365.                         FocusOverlayPanel = vguiPanel;
  366.                         FoundPanel = true;
  367.                 }
  368.         }
  369.         else if (FocusOverlayPanel == vguiPanel)
  370.         {       
  371.                 if (Menu::Window.MiscTab.WaterMark.GetState() == true)
  372.                 {
  373.                         static float rainbow;
  374.                         rainbow += 0.005f;
  375.                         if (rainbow > 1.f) rainbow = 0.f;



  376.                         Render::Text(10, 10, Color::FromHSB(rainbow, 1.f, 1.f), Render::Fonts::Menu, "成功");
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-12 13:45:43 | 显示全部楼层
916074607 发表于 2017-8-12 13:43
这个是前面所有代码因为是老外的我都没有看懂

在你发的这个代码中并没有FromHSB的声明,你得找到这个函数的声明,然后看它的第一个参数的数据类型,具体是什么、
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-12 13:48:31 | 显示全部楼层
A_Elite 发表于 2017-8-12 13:45
在你发的这个代码中并没有FromHSB的声明,你得找到这个函数的声明,然后看它的第一个参数的数据类型,具 ...

是这个吗?
  1. static Color FromHSB(float hue, float saturation, float brightness)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-12 13:49:16 | 显示全部楼层
A_Elite 发表于 2017-8-12 13:45
在你发的这个代码中并没有FromHSB的声明,你得找到这个函数的声明,然后看它的第一个参数的数据类型,具 ...

是这个吗?
  1. hsb的静态颜色(浮色,浮动饱和度,浮动亮度)
  2. {
  3. 浮动h===1.0 f?0:颜色6;
  4. 浮动f=h-(int)h;
  5. 浮动p=亮度(1.0 f-饱和度);
  6. 浮动q=亮度(1.0 f-饱和度f);
  7. 浮动t=亮度(1.0 f-(饱和度(1.0 f-f)));
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-12 13:50:00 | 显示全部楼层
A_Elite 发表于 2017-8-12 13:45
在你发的这个代码中并没有FromHSB的声明,你得找到这个函数的声明,然后看它的第一个参数的数据类型,具 ...

是这个吗?
  1. static Color FromHSB(float hue, float saturation, float brightness)
  2. {
  3. float h = hue == 1.0f ? 0 : hue * 6.0f;
  4. float f = h - (int)h;
  5. float p = brightness * (1.0f - saturation);
  6. float q = brightness * (1.0f - saturation * f);
  7. float t = brightness * (1.0f - (saturation * (1.0f - f)));
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-12 14:01:16 | 显示全部楼层
第一个参数是float 类型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-12 14:02:27 | 显示全部楼层
你的text函数的原型是什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-12 14:03:28 | 显示全部楼层
A_Elite 发表于 2017-8-12 14:02
你的text函数的原型是什么?

这个
  1. void Render::Text(int x, int y, Color color, DWORD font, const char* text)
  2. {
  3.         size_t origsize = strlen(text) + 1;
  4.         const size_t newsize = 100;
  5.         size_t convertedChars = 0;
  6.         wchar_t wcstring[newsize];
  7.         mbstowcs_s(&convertedChars, wcstring, origsize, text, _TRUNCATE);

  8.         Interfaces::Surface->Microsoft jas black(font);

  9.         Interfaces::Surface->DrawSetTextColor(color);
  10.         Interfaces::Surface->DrawSetTextPos(x, y);
  11.         Interfaces::Surface->DrawPrintText(wcstring, wcslen(wcstring));
  12.         return;
  13. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-12 14:04:45 | 显示全部楼层
你现在的工程字符集是什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-12 14:05:26 | 显示全部楼层
A_Elite 发表于 2017-8-12 14:02
你的text函数的原型是什么?

不对是这个
  1. void Render::Text(int x, int y, Color color, DWORD font, const char* text)
  2. {
  3.         size_t origsize = strlen(text) + 1;
  4.         const size_t newsize = 100;
  5.         size_t convertedChars = 0;
  6.         wchar_t wcstring[newsize];
  7.         mbstowcs_s(&convertedChars, wcstring, origsize, text, _TRUNCATE);

  8.         Interfaces::Surface->DrawSetTextFont(font);

  9.         Interfaces::Surface->DrawSetTextColor(color);
  10.         Interfaces::Surface->DrawSetTextPos(x, y);
  11.         Interfaces::Surface->DrawPrintText(wcstring, wcslen(wcstring));
  12.         return;
  13. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-16 12:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表