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

Перевернуть экран

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

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

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

Перевернуть экран

Сообщение dvahitov95 » 15 авг 2017, 00:55

Всем привет. Возможно ли "перевернуть экран" игроку, если да, то как?

Нашёл на форуме:

Код: Выделить всё
public angle_test(id){
        new argc=read_argc()
        if (argc<) return PLUGIN_CONTINUE
        
        new s_angle_x
[20]
        new s_angle_y[20]
        new s_angle_z[20]
        
        
        read_argv
(1,s_angle_x,sizeof(s_angle_x))
        read_argv(2,s_angle_y,sizeof(s_angle_y))
        read_argv(3,s_angle_z,sizeof(s_angle_z))
        
        new Float
:angle[3]
        angle[0]=str_to_float(s_angle_x)
        angle[1]=str_to_float(s_angle_y)
        angle[2]=str_to_float(s_angle_z)
        
        entity_set_vector
(id, EV_VEC_angles, angle)
        entity_set_int(id, EV_INT_fixangle, 1)
        console_print(id,"You turned to %f : %f : %f", angle[0],angle[1],angle[2])
}



Просто нужно кусок кода, где переворачивает экран и чтобы вернуть всё как было
Аватара пользователя
dvahitov95
 
Сообщения: 133
Зарегистрирован: 07 авг 2017, 17:48
Благодарил (а): 16 раз.
Поблагодарили: 1 раз.
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Перевернуть экран

Сообщение артист666 » 15 авг 2017, 07:58

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

Re: Перевернуть экран

Сообщение dvahitov95 » 15 авг 2017, 12:11

Код: Выделить всё
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

#define MAX_PLAYERS 32
new Float:g_vecPunchAngles[MAX_PLAYERS+1][3]
new 
g_iFfPlayerPreThink
#define SetUserReversed(%1)        g_bMigraineux |= 1<<(%1 & 31)
#define ClearUserReversed(%1)        g_bMigraineux &= ~( 1<<(%1 & 31))
#define HasUserMigraine(%1)        g_bMigraineux &  1<<(%1 & 31)
new g_bMigraineux

public plugin_init()
{
    
register_plugin("Menu""1.0""Admin")
    
register_clcmd("gmenu""show_menu_game")
}

public 
client_putinserver(id)
{
    
ClearUserReversed(id)
    
CheckForward()
}

public 
client_disconnect(id)
{
    
ClearUserReversed(id)
    
CheckForward()
}

public 
show_menu_game(id)
{
    new 
menu menu_create("\yМеню:^n""func_menu")
    
menu_additem(menu"\wВкл")
    
menu_additem(menu"\wВыкл")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL)
    
menu_display(idmenu0)
}

public 
func_menu(idmenukey)
{
    
key++
    if(
key == 1)
    {
        
SetUserReversed(id)
    }
    if(
key == 2)
    {
        
g_bMigraineux 0
        ClearUserReversed
(id)
    }
    
CheckForward()
}

public 
PlayerPreThink(id)
{
    if(
HasUserMigraine(id) && is_user_alive(id))
    {
        if(
g_vecPunchAngles[id][1] < 180.0)
        {
            
g_vecPunchAngles[id][1] += 2.0
            g_vecPunchAngles
[id][0] = g_vecPunchAngles[id][1] * 2.0
        
}
        else
        {
            
g_vecPunchAngles[id][0] = 0.0
        
}

        static 
Float:vecPunchAngle[3]
        
vecPunchAngle[0] = g_vecPunchAngles[id][0]
        
vecPunchAngle[1] = g_vecPunchAngles[id][0]
        
vecPunchAngle[2] = g_vecPunchAngles[id][1]

        
set_pev(idpev_punchanglevecPunchAngle)
    }
}

CheckForward()
{
    if(!
g_bMigraineux != !g_iFfPlayerPreThink)
    {
        if(
g_bMigraineux)
        {
            
g_iFfPlayerPreThink register_forward(FM_PlayerPreThink"PlayerPreThink")
        }
        else
        {
            
unregister_forward(FM_PlayerPreThinkg_iFfPlayerPreThink)
            
g_iFfPlayerPreThink 0
        
}
    }


Сделал так. Работает, но хочется узнать вашего мнения. Нет ли в исходнике ничего лишнего? Может есть вариант сделать по проще?
Аватара пользователя
dvahitov95
 
Сообщения: 133
Зарегистрирован: 07 авг 2017, 17:48
Благодарил (а): 16 раз.
Поблагодарили: 1 раз.
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#


Вернуться в Вопросы по AMXX и его плагинам

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

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