RSSy MYGO.pl Opublikowano Marzec 18, 2021 o 12:21 RSSy Udostępnij Opublikowano Marzec 18, 2021 o 12:21 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.75new Float:rotation_delay[33];public plugin_precache() precache_generic(ROTATION_SOUND);public plugin_init(){ register_plugin(PLUGIN, VERSION, AUTHOR) new const rotation_cmds[][] = { "radio1","radio2","radio3" }; for(new i; i < sizeof rotation_cmds; i++) 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(0, sCmd, charsmax(sCmd)) pev(block, pev_angles, fAngles) switch( sCmd[5] ) { case '1': { client_print(id, print_center, "Rotating the Block UPWARD!"); fAngles[0] += 90.0; } case '2': { client_print(id, print_center, "Rotating the Block RIGHTWARD!"); fAngles[1] += 90.0; } case '3': { client_print(id, print_center, "Rotating the Block FORWARD!"); fAngles[2] += 90.0; } default: return 0; } SetEntityAngles(block, fAngles) 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(ent, pev_angles, angles); set_pev(ent, pev_origin, Float:{0.0, 0.0, 0.0}); new Float:newOrigin[3]; newOrigin = GetEntityOrigin(ent); origin[0] -= newOrigin[0]; origin[1] -= newOrigin[1]; origin[2] -= newOrigin[2]; engfunc(EngFunc_SetOrigin, ent, origin);}Float:GetEntityOrigin(ent) { new Float:origin[3]; pev(ent, pev_origin, origin); new Float:center[3]; { new Float:mins[3], Float:maxs[3]; pev(ent, pev_mins, mins); pev(ent, pev_maxs, maxs); 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(ent, pev_angles, angles); engfunc(EngFunc_MakeVectors, angles); new Float:fwd[3], Float:left[3], Float:up[3]; global_get(glb_v_forward, fwd); { new Float:right[3]; global_get(glb_v_right, right); left[0] = -right[0]; left[1] = -right[1]; left[2] = -right[2]; } global_get(glb_v_up, up); // 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi