Русское сообщество по скриптингу

jbe_privileges: портировать скрипт на Pawn

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

jbe_privileges: портировать скрипт на Pawn

Сообщение oReo » 14 окт 2017, 16:29

Здравствуйте скриптёры amx-x! Кто может декомпилированый плагин на C# нормально перевести на Pawn?

Код: Выделить всё
#pragma semicolon 1
#pragma ctrlchar '\'

new g_pCvarOption[7];
new g_iLimitChoice[33][10];
new g_iMaxPlayers;
new bool:g_bAutoBhop[33];
new bool:g_bResetSpeed[33];
new g_iUserJump[33];
new bool:g_iDoubleJump[33];

replace_all(String:string[], len, String:what[], String:with[])
{
    new pos = 0;
    new var1 = contain(string, what);
    pos = var1;
    if (var1 == -1)
    {
        return 0;
    }
    new total = 0;
    new with_len = strlen(with);
    new diff = strlen(what) - with_len;
    new total_len = strlen(string);
    new temp_pos = 0;
    while (replace(string[pos], len - pos, what, with))
    {
        pos = with_len + pos;
        total_len -= diff;
        if (pos >= total_len)
        {
            return total;
        }
        else
        
{
            temp_pos = contain(string[pos], what);
            if (temp_pos == -1)
            {
                return total;
            }
            else
            
{
                pos = temp_pos + pos;
                total++;
            }
            return total;
        }
        return total;
    }
    return total;
}

public __fatal_ham_error(Ham:id, HamError:err, String:reason[])
{
    !!! Removed Phi
    if 
(func != -&& callfunc_begin_i(func, -1) == 1)
    {
        callfunc_push_int(id);
        callfunc_push_int(err);
        callfunc_push_str(reason, false);
        if (callfunc_end() == 1)
        {
            fail = 0;
        }
    }
    if (fail)
    {
        set_fail_state(reason);
    }
    return 0;
}

public plugin_init()
{
    register_plugin("jbe_privileges", "2.9", "FlesHka");
    register_dictionary("jbe_privileges.txt");
    register_event("HLTV", "EventRoundStart", "a", "1=0", "2=0");
    register_event("CurWeapon", "EventResetMaxSpeed", "be", "1=1");
    RegisterHam(Ham_Player_Jump, "player", "HamPlayerJump", 0);
    RegisterHam(Ham_Spawn, "player", "HamPlayerSpawn_Post", 1);
    register_clcmd("say /adminmenu", "ShowAccessGameMenu", -1, "", -1);
    register_clcmd("adminmenu", "ShowAccessGameMenu", -1, "", -1);
    register_clcmd("say_team /adminmenu", "ShowAccessGameMenu", -1, "", -1);
    register_clcmd("say /vipmenu", "ShowSuperMenu", -1, "", -1);
    register_clcmd("vipmenu", "ShowSuperMenu", -1, "", -1);
    register_clcmd("say_team /vipmenu", "ShowSuperMenu", -1, "", -1);
    g_pCvarOption[1] = register_cvar("adm_doublr_jump", "1", 0, 0.00);
    g_pCvarOption[2] = register_cvar("adm_health", "160.0", 0, 0.00);
    g_pCvarOption[3] = register_cvar("vip_money", "6000", 0, 0.00);
    g_pCvarOption[4] = register_cvar("vip_auto_bhop", "1", 0, 0.00);
    g_pCvarOption[5] = register_cvar("vip_speed", "340.0", 0, 0.00);
    g_pCvarOption[6] = register_cvar("vip_gravity", "0.5", 0, 0.00);
    g_iMaxPlayers = get_maxplayers();
    return 0;
}

public EventRoundStart()
{
    new id = 1;
    while (id <= g_iMaxPlayers)
    {
        new iNum = 0;
        while (iNum < 10)
        {
            if (g_iLimitChoice[id][0][0][iNum])
            {
                g_iLimitChoice[id][0][0][iNum]--;
            }
            iNum++;
        }
        new var3 = g_iDoubleJump;
        new var1;
        if (var3[id][0][0])
        {
            new var4 = g_iDoubleJump[id];
            var4 = 0;
            var1 = var4;
        }
        else
        
{
            var1 = var3;
        }
        new var5 = g_bResetSpeed;
        new var2;
        if (var5[id][0][0])
        {
            new var6 = g_bResetSpeed[id];
            var6 = 0;
            var2 = var6;
            id++;
        }
        else
        
{
            var2 = var5;
            id++;
        }
        id++;
    }
    return 0;
}

public client_putinserver(id)
{
    new var4 = g_bResetSpeed;
    new var1;
    if (var4[id][0][0])
    {
        new var5 = g_bResetSpeed[id];
        var5 = 0;
        var1 = var5;
    }
    else
    
{
        var1 = var4;
    }
    new var6 = g_bAutoBhop;
    new var2;
    if (var6[id][0][0])
    {
        new var7 = g_bAutoBhop[id];
        var7 = 0;
        var2 = var7;
    }
    else
    
{
        var2 = var6;
    }
    new var8 = g_iDoubleJump;
    new var3;
    if (var8[id][0][0])
    {
        new var9 = g_iDoubleJump[id];
        var9 = 0;
        var3 = var9;
    }
    else
    
{
        var3 = var8;
    }
    return 0;
}

public client_disconnect(id)
{
    new var4 = g_bResetSpeed;
    new var1;
    if (var4[id][0][0])
    {
        new var5 = g_bResetSpeed[id];
        var5 = 0;
        var1 = var5;
    }
    else
    
{
        var1 = var4;
    }
    new var6 = g_bAutoBhop;
    new var2;
    if (var6[id][0][0])
    {
        new var7 = g_bAutoBhop[id];
        var7 = 0;
        var2 = var7;
    }
    else
    
{
        var2 = var6;
    }
    new var8 = g_iDoubleJump;
    new var3;
    if (var8[id][0][0])
    {
        new var9 = g_iDoubleJump[id];
        var9 = 0;
        var3 = var9;
    }
    else
    
{
        var3 = var8;
    }
    return 0;
}

public ShowSuperMenu(id)
{
    !!! Removed Phi
    if 
(!get_user_flags(id, 0) & 65536)
    {
        return 1;
    }
    if (jbe_get_game_mode())
    {
        ChatColor(id, "%s %L", 3848, 0, "JBE_CHAT_VIP_GAME_ACCESS");
        return 1;
    }
    if (g_iLimitChoice[id][0][0][1] && is_user_alive(id) && iUserTeam != CS_TEAM_SPECTATOR)
    {
        formatex(szText, 255, "%L", 0, "JBE_VIP_MENU_GRAVITY", 2);
        menu_additem(iMenu, szText, "1", 0, -1);
    }
    else
    
{
        formatex(szText, 255, "%L", 0, "JBE_VIP_MENU_GRAVITY", 2);
        menu_additem(iMenu, szText, "1", 16777216, -1);
    }
    if (g_iLimitChoice[id][0][0][2] && is_user_alive(id) && iUserTeam != CS_TEAM_SPECTATOR)
    {
        formatex(szText, 255, "%L", 0, "JBE_VIP_MENU_SPEED", 2);
        menu_additem(iMenu, szText, "2", 0, -1);
    }
    else
    
{
        formatex(szText, 255, "%L", 0, "JBE_VIP_MENU_SPEED", 2);
        menu_additem(iMenu, szText, "2", 16777216, -1);
    }
    if (g_iLimitChoice[id][0][0][3] && is_user_alive(id) && iUserTeam != CS_TEAM_SPECTATOR)
    {
        formatex(szText, 255, "%L", 0, "JBE_VIP_MENU_MONEY", get_pcvar_num(g_pCvarOption[3][0]), 3);
        menu_additem(iMenu, szText, "3", 0, -1);
    }
    else
    
{
        formatex(szText, 255, "%L", 0, "JBE_VIP_MENU_MONEY", get_pcvar_num(g_pCvarOption[3][0]), 3);
        menu_additem(iMenu, szText, "3", 16777216, -1);
    }
    if (!get_pcvar_num(g_pCvarOption[4][0]) == 0)
    {
        new var4;
        if (g_bAutoBhop[id][0][0])
        {
            var4 = 4920;
        }
        else
        
{
            var4 = 5004;
        }
        formatex(szText, 255, "%L %L", -1, "JBE_VIP_MENU_BHOP", -1, var4);
        menu_additem(iMenu, szText, "4", 0, -1);
    }
    else
    
{
        new var5;
        if (g_bAutoBhop[id][0][0])
        {
            var5 = 5188;
        }
        else
        
{
            var5 = 5272;
        }
        formatex(szText, 255, "%L %L", -1, "JBE_VIP_MENU_BHOP", -1, var5);
        menu_additem(iMenu, szText, "4", 16777216, -1);
    }
    if (g_iLimitChoice[id][0][0][4] && !is_user_alive(id) && iUserTeam != CS_TEAM_SPECTATOR)
    {
        formatex(szText, 255, "%L", 0, "JBE_VIP_MENU_RESPAWN", 3);
        menu_additem(iMenu, szText, "5", 0, -1);
    }
    else
    
{
        formatex(szText, 255, "%L", 0, "JBE_VIP_MENU_RESPAWN", 3);
        menu_additem(iMenu, szText, "5", 16777216, -1);
    }
    if (g_iLimitChoice[id][0][0][5] && is_user_alive(id) && iUserTeam == CS_TEAM_T)
    {
        formatex(szText, 255, "%L", 0, "JBE_VIP_MENU_HEALME", 2);
        menu_additem(iMenu, szText, "6", 0, -1);
    }
    else
    
{
        formatex(szText, 255, "%L", 0, "JBE_VIP_MENU_HEALME", 2);
        menu_additem(iMenu, szText, "6", 16777216, -1);
    }
    formatex(szText, 255, "%L", -1, "JBE_VIP_MENU_EXIT");
    menu_setprop(iMenu, 4, szText);
    menu_setprop(iMenu, 6, 1);
    menu_setprop(iMenu, 10, "\y");
    menu_display(id, iMenu, 0);
    return 1;
}

public ChoiceSuperMenu(id, iMenu, iTem)
{
    !!! Removed Phi
    if 
(iTem == -3)
    {
        menu_destroy(iMenu);
        return 1;
    }
    new szData[6];
    new iName[64];
    new Access = 0;
    new Callback = 0;
    menu_item_getinfo(iMenu, iTem, Access, szData, 5, iName, 63, Callback);
    static CsTeams:iUserTeam;
    iUserTeam = cs_get_user_team(id, 0);
    new iKey = str_to_num(szData);
    switch (iKey)
    {
        case 1:
        {
            if (g_iLimitChoice[id][0][0][1] && is_user_alive(id) && iUserTeam != CS_TEAM_SPECTATOR)
            {
                set_pev(id, pev_gravity, get_pcvar_float(g_pCvarOption[6][0]));
                g_iLimitChoice[id][0][0][1] = 2;
            }
            ShowSuperMenu(id);
        }
        case 2:
        {
            if (g_iLimitChoice[id][0][0][2] && is_user_alive(id) && iUserTeam != CS_TEAM_SPECTATOR)
            {
                g_bResetSpeed[id] = 1;
                EventResetMaxSpeed(id);
                g_iLimitChoice[id][0][0][2] = 2;
            }
            ShowSuperMenu(id);
        }
        case 3:
        {
            if (g_iLimitChoice[id][0][0][3] && is_user_alive(id) && iUserTeam != CS_TEAM_SPECTATOR)
            {
                cs_set_user_money(id, get_pcvar_num(g_pCvarOption[3][0]) + cs_get_user_money(id), 1);
                g_iLimitChoice[id][0][0][3] = 3;
            }
            ShowSuperMenu(id);
        }
        case 4:
        {
            if (!get_pcvar_num(g_pCvarOption[4][0]) == 0)
            {
                if (g_bAutoBhop[id][0][0])
                {
                    g_bAutoBhop[id] = 0;
                }
                g_bAutoBhop[id] = 1;
            }
            ShowSuperMenu(id);
        }
        case 5:
        {
            if (g_iLimitChoice[id][0][0][4] && !is_user_alive(id) && iUserTeam != CS_TEAM_SPECTATOR)
            {
                ExecuteHam(Ham_CS_RoundRespawn, id);
                if (!get_user_flags(id, 0) & 64)
                {
                    g_iLimitChoice[id][0][0][4] = 3;
                }
            }
            ShowSuperMenu(id);
        }
        case 6:
        {
            if (g_iLimitChoice[id][0][0][5] && is_user_alive(id) && iUserTeam == CS_TEAM_T)
            {
                set_pev(id, pev_health, 100.00/*1120403456*/);
                g_iLimitChoice[id][0][0][5] = 2;
            }
            ShowSuperMenu(id);
        }
        default:
        {
        }
    }
    menu_destroy(iMenu);
    return 1;
}

public ShowAccessGameMenu(id)
{
    if (get_user_flags(id, 0) & 32768)
    {
        if (jbe_get_game_mode())
        {
            ShowAmxMenu(id);
        }
        ShowAdminMenu(id);
    }
    return 1;
}

public ShowAdminMenu(id)
{
    !!! Removed Phi
    if 
(!get_user_flags(id, 0) & 32768)
    {
        return 1;
    }
    if (jbe_get_game_mode())
    {
        ChatColor(id, "%s %L", 5892, 0, "JBE_CHAT_VIP_GAME_ACCESS");
        return 1;
    }
    if (g_iLimitChoice[id][0][0][6] && is_user_alive(id) && iUserTeam != CS_TEAM_SPECTATOR)
    {
        formatex(szText, 257, "%L", 0, "JBE_ADM_MENU_DOUBLRJUMP", 2);
        menu_additem(iMenu, szText, "3", 0, -1);
    }
    else
    
{
        formatex(szText, 257, "%L", 0, "JBE_ADM_MENU_DOUBLRJUMP", 2);
        menu_additem(iMenu, szText, "3", 16777216, -1);
    }
    if (g_iLimitChoice[id][0][0][7] && is_user_alive(id) && iUserTeam == CS_TEAM_CT)
    {
        formatex(szText, 257, "%L", 0, "JBE_ADM_MENU_INVIZ", 2);
        menu_additem(iMenu, szText, "4", 0, -1);
    }
    else
    
{
        formatex(szText, 257, "%L", 0, "JBE_ADM_MENU_INVIZ", 2);
        menu_additem(iMenu, szText, "4", 16777216, -1);
    }
    if (g_iLimitChoice[id][0][0][8] && is_user_alive(id) && iUserTeam == CS_TEAM_CT)
    {
        formatex(szText, 257, "%L", 0, "JBE_ADM_MENU_HEALTH", get_pcvar_num(g_pCvarOption[2][0]), 3);
        menu_additem(iMenu, szText, "5", 0, -1);
    }
    else
    
{
        formatex(szText, 257, "%L", 0, "JBE_ADM_MENU_HEALTH", get_pcvar_num(g_pCvarOption[2][0]), 3);
        menu_additem(iMenu, szText, "5", 16777216, -1);
    }
    if (g_iLimitChoice[id][0][0][9] && is_user_alive(id) && iUserTeam == CS_TEAM_T && !jbe_get_user_freeday(id))
    {
        formatex(szText, 257, "%L", 0, "JBE_ADM_MENU_FREEDAY", 3);
        menu_additem(iMenu, szText, "6", 0, -1);
    }
    else
    
{
        formatex(szText, 257, "%L", 0, "JBE_ADM_MENU_FREEDAY", 3);
        menu_additem(iMenu, szText, "6", 16777216, -1);
    }
    formatex(szText, 257, "%L", -1, "JBE_ADM_MENU_EXIT");
    menu_setprop(iMenu, 4, szText);
    menu_setprop(iMenu, 6, 1);
    menu_setprop(iMenu, 10, "\y");
    menu_display(id, iMenu, 0);
    return 1;
}

public ChoiceAdminMenu(id, iMenu, iTem)
{
    !!! Removed Phi
    if 
(iTem == -3)
    {
        menu_destroy(iMenu);
        return 1;
    }
    new szData[6];
    new iName[64];
    new Access = 0;
    new Callback = 0;
    menu_item_getinfo(iMenu, iTem, Access, szData, 5, iName, 63, Callback);
    new iKey = str_to_num(szData);
    static CsTeams:iUserTeam;
    iUserTeam = cs_get_user_team(id, 0);
    switch (iKey)
    {
        case 1:
        {
            ShowAmxMenu(id);
        }
        case 2:
        {
            ShowMenuRespawn(id);
        }
        case 3:
        {
            if (g_iLimitChoice[id][0][0][6] && is_user_alive(id) && iUserTeam != CS_TEAM_SPECTATOR)
            {
                g_iDoubleJump[id] = 1;
                g_iLimitChoice[id][0][0][6] = 2;
            }
            ShowAccessGameMenu(id);
        }
        case 4:
        {
            if (g_iLimitChoice[id][0][0][7] && is_user_alive(id) && iUserTeam == CS_TEAM_CT)
            {
                fm_set_user_rendering(id, 19, 0, 0, 0, 4, 4);
                g_iLimitChoice[id][0][0][7] = 2;
            }
            ShowAccessGameMenu(id);
        }
        case 5:
        {
            if (g_iLimitChoice[id][0][0][8] && is_user_alive(id) && iUserTeam == CS_TEAM_CT)
            {
                set_pev(id, pev_health, get_pcvar_float(g_pCvarOption[2][0]));
                g_iLimitChoice[id][0][0][8] = 3;
            }
            ShowAccessGameMenu(id);
        }
        case 6:
        {
            if (g_iLimitChoice[id][0][0][9] && is_user_alive(id) && iUserTeam == CS_TEAM_T)
            {
                jbe_give_user_freeday(id);
                g_iLimitChoice[id][0][0][9] = 3;
            }
            ShowAccessGameMenu(id);
        }
        default:
        {
        }
    }
    menu_destroy(iMenu);
    return 1;
}

public EventResetMaxSpeed(id)
{
    !!! Removed Phi
    if 
(get_user_flags(id, 0) & 65536 && g_bResetSpeed[id][0][0] && !jbe_get_game_mode())
    {
        set_pev(id, pev_maxspeed, get_pcvar_float(g_pCvarOption[5][0]));
    }
    return 0;
}


public ShowMenuRespawn(id)
{
    !!! Removed Phi
    if 
(!get_user_flags(id, 0) & 32768)
    {
        return 1;
    }
    if (jbe_get_game_mode())
    {
        ChatColor(id, "%s %L", 7484, 0, "JBE_CHAT_VIP_GAME_ACCESS");
        return 1;
    }
    new szText[256];
    new s_Players[32];
    new i_Num = 0;
    new iPlayer = 0;
    new szName[32];
    new s_Player[10];
    formatex(szText, 255, "%L", -1, "JBE_ADM_MENU_RESPAWN");
    new iMenu = menu_create(szText, "ChoiceMenuRespawn", 0);
    get_players(s_Players, i_Num, "", "");
    new i = 0;
    while (< i_Num)
    {
        if (iPlayer != id && !is_user_alive(iPlayer))
        {
            formatex(szText, 255, "%L", -1, "JBE_ADM_RESPAWN_PLAYER", szName);
            menu_additem(iMenu, szText, s_Player, 0, -1);
            i++;
        }
        else
        
{
            formatex(szText, 255, "%L", -1, "JBE_ADM_RESPAWN_ACCESS", szName);
            menu_additem(iMenu, szText, s_Player, 16777216, -1);
            i++;
        }
        i++;
    }
    menu_setprop(iMenu, 3, 8136);
    menu_setprop(iMenu, 2, 8188);
    menu_setprop(iMenu, 4, 8232);
    menu_setprop(iMenu, 10, "\y");
    menu_display(id, iMenu, 0);
    return 1;
}

public ChoiceMenuRespawn(id, iMenu, iTem)
{
    if (iTem == -3)
    {
        menu_destroy(iMenu);
        return 1;
    }
    new szData[6];
    new sName[64];
    new iAccess = 0;
    new iCallback = 0;
    new szName[32];
    new szNameUser[32];
    menu_item_getinfo(iMenu, iTem, iAccess, szData, 5, sName, 63, iCallback);
    new iPlayer = str_to_num(szData);
    get_user_name(iPlayer, szNameUser, 31);
    get_user_name(id, szName, 31);
    ChatColor(0, "%s %L", 8328, 0, "JBE_CHAT_ADM_RESPAWN_USER", szName, szNameUser);
    ExecuteHam(Ham_CS_RoundRespawn, iPlayer);
    ShowMenuRespawn(id);
    return 1;
}

public ShowAmxMenu(id)
{
    if (!get_user_flags(id, 0) & 32768)
    {
        return 1;
    }
    new szText[128];
    new iUserFlags = get_user_flags(id, 0);
    formatex(szText, 127, "%L", -1, "JBE_AMX_MENU");
    new iMenu = menu_create(szText, "ChoiceAmxMenu", 0);
    if (iUserFlags & 4)
    {
        formatex(szText, 127, "%L", -1, "JBE_AMX_MENU_KICK");
        menu_additem(iMenu, szText, "1", 0, -1);
    }
    else
    
{
        formatex(szText, 127, "%L", -1, "JBE_AMX_MENU_KICK");
        menu_additem(iMenu, szText, "1", 16777216, -1);
    }
    if (iUserFlags & 8)
    {
        formatex(szText, 127, "%L", -1, "JBE_AMX_MENU_BAN");
        menu_additem(iMenu, szText, "2", 0, -1);
    }
    else
    
{
        formatex(szText, 127, "%L", -1, "JBE_AMX_MENU_BAN");
        menu_additem(iMenu, szText, "2", 16777216, -1);
    }
    if (iUserFlags & 16)
    {
        formatex(szText, 127, "%L", -1, "JBE_AMX_MENU_SLAY");
        menu_additem(iMenu, szText, "3", 0, -1);
    }
    else
    
{
        formatex(szText, 127, "%L", -1, "JBE_AMX_MENU_SLAY");
        menu_additem(iMenu, szText, "3", 16777216, -1);
    }
    if (iUserFlags & 4096)
    {
        formatex(szText, 127, "%L", -1, "JBE_AMX_MENU_TEAM");
        menu_additem(iMenu, szText, "4", 0, -1);
    }
    else
    
{
        formatex(szText, 127, "%L", -1, "JBE_AMX_MENU_TEAM");
        menu_additem(iMenu, szText, "4", 16777216, -1);
    }
    if (iUserFlags & 512)
    {
        formatex(szText, 127, "%L", -1, "JBE_AMX_MENU_VOTE");
        menu_additem(iMenu, szText, "5", 0, -1);
    }
    else
    
{
        formatex(szText, 127, "%L", -1, "JBE_AMX_MENU_VOTE");
        menu_additem(iMenu, szText, "5", 16777216, -1);
    }
    formatex(szText, 127, "%L", -1, "JBE_AMX_MENU_EXIT");
    menu_setprop(iMenu, 4, szText);
    menu_setprop(iMenu, 6, 1);
    menu_setprop(iMenu, 10, "\y");
    menu_display(id, iMenu, 0);
    return 1;
}

public ChoiceAmxMenu(id, iMenu, iTem)
{
    if (iTem == -3)
    {
        menu_destroy(iMenu);
        return 1;
    }
    new szData[6];
    new iName[64];
    new iAccess = 0;
    new iCallback = 0;
    menu_item_getinfo(iMenu, iTem, iAccess, szData, 5, iName, 63, iCallback);
    new iKey = str_to_num(szData);
    new iUserFlags = get_user_flags(id, 0);
    switch (iKey)
    {
        case 1:
        {
            if (iUserFlags & 4)
            {
                client_cmd(id, "amx_kickmenu");
            }
        }
        case 2:
        {
            if (iUserFlags & 8)
            {
                client_cmd(id, "amx_banmenu");
            }
        }
        case 3:
        {
            if (iUserFlags & 16)
            {
                client_cmd(id, "amx_slapmenu");
            }
        }
        case 4:
        {
            if (iUserFlags & 4096)
            {
                client_cmd(id, "amx_teammenu");
            }
        }
        case 5:
        {
            if (iUserFlags & 512)
            {
                client_cmd(id, "amx_votemapmenu");
            }
        }
        default:
        {
        }
    }
    return 1;
}

public HamPlayerSpawn_Post(id)
{
    if (!is_user_connected(id))
    {
        return 1;
    }
    new var3 = g_bResetSpeed;
    new var1;
    if (var3[id][0][0])
    {
        new var4 = g_bResetSpeed[id];
        var4 = 0;
        var1 = var4;
    }
    else
    
{
        var1 = var3;
    }
    new var5 = g_iDoubleJump;
    new var2;
    if (var5[id][0][0])
    {
        new var6 = g_iDoubleJump[id];
        var6 = 0;
        var2 = var6;
    }
    else
    
{
        var2 = var5;
    }
    return 1;
}

public fm_set_user_rendering(pPlayer, iRenderFx, iRed, iGreen, iBlue, iRenderMode, iRenderAmt)
{
    new Float:flRenderColor[3];
    flRenderColor[0] = float(iRed);
    flRenderColor[1] = float(iGreen);
    flRenderColor[2] = float(iBlue);
    set_pev(pPlayer, pev_renderfx, iRenderFx);
    set_pev(pPlayer, pev_rendercolor, flRenderColor);
    set_pev(pPlayer, pev_rendermode, iRenderMode);
    set_pev(pPlayer, pev_renderamt, float(iRenderAmt));
    return 0;
}

ChatColor(id, String:input[])
{
    new count = 1;
    new players[32];
    static msg[191];
    vformat(msg, 190, input, 3);
    replace_all(msg, 190, "!g", "\4");
    replace_all(msg, 190, "!y", "\1");
    replace_all(msg, 190, "!t", "\3");
    if (id)
    {
        players[0] = id;
    }
    else
    
{
        get_players(players, count, "ch", "");
    }
    new i = 0;
    while (< count)
    {
        if (is_user_connected(players[i]))
        {
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), 10864, players[i]);
            write_byte(players[i]);
            write_string("");
            message_end();
            i++;
        }
        i++;
    }
    return 0;
}

Неинформативное название темы (исправлено; смотри Вы должны зарегистрироваться, чтобы видеть ссылки.) // Subb98


Добавлено спустя 31 минуту 56 секунд:
Subb98, даже не сообщил...
деструктор решает все проблемы: нет переменной - нет проблемы (с) Subb98
Аватара пользователя
oReo
 
Сообщения: 165
Зарегистрирован: 24 май 2017, 05:59
Благодарил (а): 10 раз.
Поблагодарили: 5 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn

Re: jbe_privileges: портировать скрипт на Pawn

Сообщение Fedcomp » 14 окт 2017, 17:45

Я вижу только павн плагин. В чем заключается проблема?
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 815 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: jbe_privileges: портировать скрипт на Pawn

Сообщение артист666 » 14 окт 2017, 18:25

Он наверное думал, что плагины компилируются в С#. :-D
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: jbe_privileges: портировать скрипт на Pawn

Сообщение oReo » 15 окт 2017, 07:51

артист666, lysis decompiler разве не на C# основан?

Добавлено спустя 1 минуту 1 секунду:
Fedcomp, не сильно шарю в декомпляции, получил такой код, пытался чот изменять, не вышло. Пишет error
деструктор решает все проблемы: нет переменной - нет проблемы (с) Subb98
Аватара пользователя
oReo
 
Сообщения: 165
Зарегистрирован: 24 май 2017, 05:59
Благодарил (а): 10 раз.
Поблагодарили: 5 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn

Re: jbe_privileges: портировать скрипт на Pawn

Сообщение артист666 » 15 окт 2017, 09:03

oReo писал(а):артист666, lysis decompiler разве не на C# основан?


Да всё равно на чём он написан.

oReo писал(а):не сильно шарю в декомпляции, получил такой код, пытался чот изменять, не вышло. Пишет error


800 строк перебирать за просто так?
Не думаю, что кому-то интересно такое щедрое предложение.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: jbe_privileges: портировать скрипт на Pawn

Сообщение Dart_Begep » 15 окт 2017, 11:42

А вас не смутили строчки "!!! Removed Phi"? ;) Закомментируйте и проверьте. Ну и инклюды надо правильные дописать. Для начала можно все прописать, а потом потихоньку убирать.
Быстро пробежавшись по коду, вот это бросилось в глаза. Возможно этого будет достаточно.
Аватара пользователя
Dart_Begep
 
Сообщения: 131
Зарегистрирован: 19 апр 2017, 22:29
Благодарил (а): 11 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
Php
JavaScript

Re: jbe_privileges: портировать скрипт на Pawn

Сообщение артист666 » 15 окт 2017, 17:11

Dart_Begep писал(а):Возможно этого будет достаточно.

Неа. Все массивы нужно перепроверять.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: jbe_privileges: портировать скрипт на Pawn

Сообщение DezareD » 15 окт 2017, 18:19

Лучше создать новый с данными из этого
Аватара пользователя
DezareD
 
Сообщения: 29
Зарегистрирован: 17 апр 2016, 13:13
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: jbe_privileges: портировать скрипт на Pawn

Сообщение Dart_Begep » 15 окт 2017, 20:36

артист666 писал(а):
Dart_Begep писал(а):Возможно этого будет достаточно.

Неа. Все массивы нужно перепроверять.

Я лишь бегло пробежался по коду, обратил внимание лишь на то, что бросилось в глаза ;)
Аватара пользователя
Dart_Begep
 
Сообщения: 131
Зарегистрирован: 19 апр 2017, 22:29
Благодарил (а): 11 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
Php
JavaScript

Re: jbe_privileges: портировать скрипт на Pawn

Сообщение oReo » 16 окт 2017, 13:48

DezareD, не, я ставил все инклюды, удалял removed phi и так далее, выдаёт ошибку в iUser и idшниках в if
деструктор решает все проблемы: нет переменной - нет проблемы (с) Subb98
Аватара пользователя
oReo
 
Сообщения: 165
Зарегистрирован: 24 май 2017, 05:59
Благодарил (а): 10 раз.
Поблагодарили: 5 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn

След.

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5