[EXTENSION] [CS:GO]PTaH (Старый PHooks) 1.0.6

PTaH - P Tools and Hooks

  1. komashchenko

    komashchenko

    Сообщения:
    516
    Симпатии:
    528
    PTaH - P Tools and Hooks

    include


    Weapon Info

    PHP:
    #pragma semicolon 1
    #include <PTaH>

    public void OnPluginStart() 
    {
        
    PTaH(PTaH_ExecuteStringCommandHookExecuteStringCommand);
        
    PTaH(PTaH_OnClientConnectHookOnClientConnectPre);
        
    PTaH(PTaH_GiveNamedItemPreHookGiveNamedItemPre);
        
    PTaH(PTaH_MapContentListHookMapContentList);
        
    PTaH(PTaH_WeaponCanUseHookWeaponCanUse);
        
    PTaH(PTaH_ConsolePrintHookConsolePrint);
        
    PTaH(PTaH_SetPlayerModelHookSetPlayerModel);
        
    PTaH(PTaH_ServerConsolePrintHookServerConsolePrint);
        
    RegConsoleCmd("ptah"ptah_);
        
    RegConsoleCmd("ptah2"ptah_2); 
    }

       
    public 
    Action ptah_(int iClientint args)
    {
        
    char buf[64];
       
        
    AddrInfo addr;
        
    int res PTaH_GetAddrInfo("forums.alliedmods.net"AF_UNSPECaddr);
        if(
    res == 0)
        {
            
    PrintToChatAll("GetAddrInfo - forums.alliedmods.net");
            
    AddrInfo p;
            for(
    addrpp.NextIP)
            {
                
    p.GetIP(bufsizeof(buf));
                
    PrintToChatAll("%s %s"p.Family == "IP":"IP6"buf);
            }
            
    addr.ClearMem();
        }
        else
        {
            
    PTaH_Gai_StrError(resbufsizeof(buf));
            
    PrintToChatAll("GetAddrInfo - %d %s"resbuf);
        }
       
        
    PTaH_MD5File("addons/metamod.vdf"bufsizeof(buf));
        
    PrintToChatAll("HASH - addons/metamod.vdf - %s"buf);
        return 
    Plugin_Handled;
    }

    public 
    Action ptah_2(int iClientint args
    {
        
    char sBuf[32];
        
    GetCmdArgString(sBufsizeof(sBuf));
        
    float origin[3];
        
    GetClientAbsOrigin(iClientorigin);
        
    int iEnt PTaH_SpawnItemFromDefIndex(StringToInt(sBuf), origin);
        
    PrintToChat(iClient"%d"iEnt);
    }

    public 
    Action ExecuteStringCommand(int iClientchar sMessage[512])
    {
        
    //Blocking command status
        
    static char sMessage2[512];
        
    sMessage2 sMessage;
        
    //Remove space and tabs (commands its passed in the original form without a slew of front space and tab and etc) "           status   "
        
    TrimString(sMessage2); 
        
    //*Client could write "status 3453 4534 5456 2354"
        
    if(StrContains(sMessage2"status") == 0)
        {
            
    PrintToChatAll("%N Introduced command status"iClient);
            return 
    Plugin_Handled;
        }
        return 
    Plugin_Continue;
    }

    public 
    Action OnClientConnectPre(const char[] sNamechar sPassword[128], const char[] sIp, const char[] sSteamIDchar rejectReason[512])
    {
        
    LogMessage("OnClientConnectPre %s %s %s"sNamesIpsSteamID);
        return 
    Plugin_Continue;
    }

    //We are doing the same thing as https://forums.alliedmods.net/showthread.php?t=236199 (do not forget say thank you to Dr!fter)
    public Action GiveNamedItemPre(int iClientchar sClassname[64], CEconItemView &Item)
    {
        if(!
    Item || !Item.IsCustomItemView())
        {
            
    CEconItemDefinition ItemDefinition PTaH_GetItemDefinitionByName(sClassname);
            if(
    ItemDefinition)
            {
                
    int iTeam GetClientTeam(iClient);
                
    int iLoadoutSlot ItemDefinition.GetLoadoutSlot();
                
    CEconItemView Item2 PTaH_GetItemInLoadout(iClientiTeamiLoadoutSlot);
                if(!
    Item2.IsCustomItemView())
                {
                    
    Item2 PTaH_GetItemInLoadout(iClientiTeam == 3:2iLoadoutSlot);
                    
    //                                    Fix the problem when its gave tec9 instead five-seven
                    
    if(Item2.IsCustomItemView() && ItemDefinition.GetDefinitionIndex() == Item2.GetItemDefinition().GetDefinitionIndex())
                    {
                        
    Item Item2;
                        return 
    Plugin_Changed;
                    }
                }
            }
        }
        return 
    Plugin_Continue;
    }

    //Blocking loading .nav files
    public Action MapContentList(char sFile[128])
    {
        if(
    StrContains(sFile".nav") != -1) return Plugin_Handled;
        return 
    Plugin_Continue;
    }

    //Allowing Counter-terrorist pick up C4
    public bool WeaponCanUse(int iClientint iEntbool CanUse)
    {
        static 
    char sClassname[64];
        
    GetEdictClassname(iEntsClassnamesizeof(sClassname));
        if(
    StrEqual(sClassname"weapon_c4")) return true;
        return 
    CanUse;
    }

    //Withdraw in the chat client that writes to the console
    public Action ConsolePrint(int iClientchar sMessage[1024])
    {
        
    PrintToChat(iClientsMessage);
        return 
    Plugin_Continue;
    }

    public 
    void SetPlayerModel(int iClient, const char[] sModel)
    {
        
    PrintToChatAll("%N Set Model %s"iClientsModel);
    }

    //Block out messages that contain DataTable warning
    public Action ServerConsolePrint(const char[] sMessageLoggingSeverity severity)
    {
        if (
    StrContains(sMessage"DataTable warning") != -1) return Plugin_Handled;
        return 
    Plugin_Continue;
    }


    Спасибо: Dr!fter, Peace-Maker, GoD-Tony, rom4s

    Ссылки
    Source
    Builds
    Gamedata

    Changelog:
    1.0.1
    • Добавлен хук ServerConsolePrint
    • Исправлен PTaH_GetEconItemViewFromWeapon для Windows (Спасибо GoD-Tony)
    • PTaH_GetHostByName заменен на PTaH_GetAddrInfo

    1.0.2
    • Исправления из-за обновы CSGO. Спасибо Peace-Maker, GoD-Tony, rom4s

    1.0.3
    • Фикс Segmentation fault

    1.0.4
    • Добавление параметра LoggingSeverity в ServerConsolePrint

    1.0.5
    • Исправление ConsolePrint

    1.0.6
    • Исправлен натив GetDefinitionIndex на винде
    • PTaH_GetEconItemViewFromWeapon теперь не требует геймдату
    • Добавлен натив PTaH_SpawnItemFromDefIndex - позволяет спавнит предметы по их DefinitionIndex (CEconItemView валидна так что багов у оружия нет)
     

    Вложения:

    • PTaH_test.sp
      Размер файла:
      3,8 КБ
      Просмотров:
      760
    Последнее редактирование: 20 июн 2017
    ZirionNeft, Temkqa, PainteR и 4 другим нравится это.
  2. GoDtm666

    GoDtm666

    Сообщения:
    522
    Симпатии:
    565
    PHP:
    DETOUR_DECL_MEMBER1(CDownloadListGeneratorintchar *, file_name)
    {
        if (
    g_pMapContentList->GetFunctionCount() > 0)
        {
            
    char sFileByf[128];
            
    strcpy(sFileByffile_name);
            
    cell_t res PLUGIN_CONTINUE;
            
    g_pMapContentList->PushStringEx(sFileByfsizeof(sFileByf), SM_PARAM_STRING_COPYSM_PARAM_COPYBACK);
            
    g_pMapContentList->Execute(&res);

            switch (
    res
            {
                case 
    Pl_Changed:
                {
                    
    DETOUR_MEMBER_CALL(CDownloadListGenerator)(sFileByf);
                }
                case 
    Pl_Handled:
                case 
    Pl_Stop:
                {
                    return 
    0;
                }
            }
        }
        return 
    DETOUR_MEMBER_CALL(CDownloadListGenerator)(file_name);
    }
    Может так?

    PHP:
    DETOUR_DECL_MEMBER1(CDownloadListGeneratorvoid, const char *, file_name)
    {
        if (
    file_name != NULL && g_pMapContentList->GetFunctionCount() > 0)
        {
            
    char sFileByf[PATH_MAX];
            
    cell_t res PLUGIN_CONTINUE;
            
    strncpy(sFileByffile_namePATH_MAX-1);
            
    g_pMapContentList->PushStringEx(sFileByfPATH_MAX-1SM_PARAM_STRING_COPYSM_PARAM_COPYBACK);
            
    g_pMapContentList->Execute(&res);
            switch(
    res
            {
                case 
    Pl_Changed:
                {
                    
    DETOUR_MEMBER_CALL(CDownloadListGenerator)(sFileByf);
                    return;
                }
                case 
    Pl_Handled:
                {
                    return;
                }
                case 
    Pl_Stop:
                {
                    return;
                }
                default:
                {
                    break;
                }
            }
        }
        
    DETOUR_MEMBER_CALL(CDownloadListGenerator)(file_name);
        return;
    }
    PATH_MAX вроде 1024..
     
    Последнее редактирование: 11 дек 2015
  3. R1KO

    R1KO Source Dealer Супермодератор

    Сообщения:
    6.827
    Симпатии:
    3.884
    komashchenko, си++ не павн, тут в свитч нужен брейк или ретурн в каждом кейс
     
  4. BGKoKoOo

    BGKoKoOo

    Сообщения:
    32
    Симпатии:
    7
    Can you release this extension and for windows
     
  5. Tokem

    Tokem

    Сообщения:
    1
    Симпатии:
    0
    i need phooks for css
     
  6. Andy Freeman

    Andy Freeman Fatal error Супермодератор

    Сообщения:
    418
    Симпатии:
    80
    Phooks is only for csgo
     
  7. Григорий

    Григорий

    Сообщения:
    3
    Симпатии:
    0
    Как и куда это устанавливать?
     
  8. BruteManShow

    BruteManShow

    Сообщения:
    48
    Симпатии:
    1
  9. veron

    veron

    Сообщения:
    1
    Симпатии:
    0
    Куда устанавливать!!!??? Продвинутые, ответьте!!! Нам чайникам нужна Ваша помощь!!!!
     
  10. ĦĄŇĢǾVξŘ

    ĦĄŇĢǾVξŘ καταλημμα

    Сообщения:
    295
    Симпатии:
    243
    \addons\sourcemod\
     
  11. fish2k

    fish2k

    Сообщения:
    1
    Симпатии:
    0
    сделайте компиль под WIN !!!!!
     
  12. inklesspen

    inklesspen После "Р" в слове "Лопата"

    Сообщения:
    1.167
    Симпатии:
    288
    Всякие расширения очень часто лишь для Linux, пора бы хотя-бы на ноут поставить Ubuntu\CentOS или че-нибудь еще из Linux
     
  13. Дима_ez

    Дима_ez

    Сообщения:
    1
    Симпатии:
    0
    А куда закидывать phooks_src??
     
  14. inklesspen

    inklesspen После "Р" в слове "Лопата"

    Сообщения:
    1.167
    Симпатии:
    288
    src это исходник, качай другой архив
    --- Добавлено позже ---
    Он ведь нормально работает с DHooks?
     
    Последнее редактирование: 24 авг 2016
  15. nguyenbaodanh

    nguyenbaodanh

    Сообщения:
    4
    Симпатии:
    0
    No windows version ease make one :(
     
  16. inklesspen

    inklesspen После "Р" в слове "Лопата"

    Сообщения:
    1.167
    Симпатии:
    288
    What you need from PHooks? mb I can help...
    (mb I'll write plugin on DHooks, analogue PHooks)
     
  17. ToniWaor

    ToniWaor

    Сообщения:
    76
    Симпатии:
    9
    for windows here [EXTENSION] PHooks - V1.1
     
    inklesspen нравится это.
  18. inklesspen

    inklesspen После "Р" в слове "Лопата"

    Сообщения:
    1.167
    Симпатии:
    288
    Can you download for me?
     
  19. komashchenko

    komashchenko

    Сообщения:
    516
    Симпатии:
    528
    1.0.1
    • Добавлен хук ServerConsolePrint
    • Исправлен PTaH_GetEconItemViewFromWeapon для Windows (Спасибо GoD-Tony)
    • PTaH_GetHostByName заменен на PTaH_GetAddrInfo
     
    CAH4E3, Dreizehnt и inklesspen нравится это.
  20. inklesspen

    inklesspen После "Р" в слове "Лопата"

    Сообщения:
    1.167
    Симпатии:
    288
    Отлично, ПТаХ делает свое дело)