Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

RSSRotate Blocks in BaseBuilder 6.5


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
Hi, I have this plugin that when you move the blocks by pressing Z, X and C rotates the blocks.
It's just that when you press to spin them, it teleports them very far and they should be in front of the crosshair.
Can someone make them to stay put, not to teleport?

PHP Code:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <fakemeta>
#include <basebuilder>

#define PLUGIN "[BB] Block Rotation"
#define VERSION "1.0"
#define AUTHOR "Natsheh"

#define ROTATION_SOUND    "sound/fvox/beep.wav"

#define ROTATION_DELAY 0.75

new Float:rotation_delay[33];

public 
plugin_precache() precache_generic(ROTATION_SOUND);

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    new const 
rotation_cmds[][] = { "radio1","radio2","radio3" };
    for(new 
isizeof rotation_cmdsi++) register_clcmd(rotation_cmds[i], "clcmd_radio"_"Rotate block!");
}

public 
clcmd_radio(id)
{
    new 
block;
    if(!(
block bb_get_user_block(id))) return 0;
    
    new 
Float:gtime get_gametime();
    
    if( 
rotation_delay[id] > gtime ) return 1;
    
    new 
sCmd[8], Float:fAngles[3];
    
read_argv(0sCmdcharsmax(sCmd))
    
    
pev(blockpev_anglesfAngles)
    
    switch( 
sCmd[5] )
    {
        case 
'1': { client_print(idprint_center"Rotating the Block UPWARD!"); fAngles[0] += 90.0; }
        case 
'2': { client_print(idprint_center"Rotating the Block RIGHTWARD!"); fAngles[1] += 90.0; }
        case 
'3': { client_print(idprint_center"Rotating the Block FORWARD!"); fAngles[2] += 90.0; }
        default: return 
0;
    }
    
    
SetEntityAngles(blockfAngles)
    
    
client_cmd(id"spk ^"%s^""ROTATION_SOUND)
    
rotation_delay[id] = gtime ROTATION_DELAY;
    return 
1;
}
SetEntityAngles(ent, const Float:angles[3]) {
    new 
Float:origin[3];
    
origin GetEntityOrigin(ent);
    
    
set_pev(entpev_anglesangles);
    
set_pev(entpev_originFloat:{0.00.00.0});
    
    new 
Float:newOrigin[3];
    
newOrigin GetEntityOrigin(ent);
    
    
origin[0] -= newOrigin[0];
    
origin[1] -= newOrigin[1];
    
origin[2] -= newOrigin[2];
    
    
engfunc(EngFunc_SetOriginentorigin);
}

Float:GetEntityOrigin(ent) {
    new 
Float:origin[3];
    
pev(entpev_originorigin);
    
    new 
Float:center[3];
    {
        new 
Float:mins[3], Float:maxs[3];
        
pev(entpev_minsmins);
        
pev(entpev_maxsmaxs);
        
center[0] = (mins[0] + maxs[0])/2;
        
center[1] = (mins[1] + maxs[1])/2;
        
center[2] = (mins[2] + maxs[2])/2;
    }
    
    new 
Float:rotatedCenter[3];
    {
        new 
Float:angles[3];
        
pev(entpev_anglesangles);
        
        
engfunc(EngFunc_MakeVectorsangles);
        new 
Float:fwd[3], Float:left[3], Float:up[3];
        
global_get(glb_v_forwardfwd);
        {
            new 
Float:right[3];
            
global_get(glb_v_rightright);
            
left[0] = -right[0];
            
left[1] = -right[1];
            
left[2] = -right[2];
        }
        
global_get(glb_v_upup);
        
        
// rotatedCenter = fwd*center.x + left*center.y + up*center.z
        
rotatedCenter[0] = fwd[0]*center[0] + left[0]*center[1] + up[0]*center[2];
        
rotatedCenter[1] = fwd[1]*center[0] + left[1]*center[1] + up[1]*center[2];
        
rotatedCenter[2] = fwd[2]*center[0] + left[2]*center[1] + up[2]*center[2];
    }
    
    
origin[0] += rotatedCenter[0];
    
origin[1] += rotatedCenter[1];
    
origin[2] += rotatedCenter[2];
    
    return 
origin;


Przeczytaj cały wpis

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...