PHP- Kodu:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <xs>
#define PLUGIN "DANS Menusu"
#define VERSION "0.1.1"
#define AUTHOR "ANONIM // Edit: CSmiLeFaCe"
#define ANIM_MODEL "models/CSPlugin_Hareketler.mdl"
enum _:PLAYER_DATA
{
ENT_CAM,
ENT_MODEL,
ENT_ANIM,
ANIM_PLAYING
}
enum _:SEQ_DESC
{
MODEL[64],
SEQ_LABEL[33],
SEQ_FPS,
SEQ_FRAMES,
SEQ_FRAMERATE
}
new g_allocString
new g_playerData[33][PLAYER_DATA]
new Array:g_animData
new g_animMenu
new g_cvarAccessFlag
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /dans", "cmdAnim")
register_forward(FM_CmdStart, "fwdCmdStart", 1)
RegisterHam(Ham_Killed, "player", "fwdPlayerKilled", 1)
g_allocString = engfunc(EngFunc_AllocString, "info_target")
g_animData = ArrayCreate(SEQ_DESC)
g_animMenu = menu_create("\y[DANS MENUSU] \d [CSmiLeFaCe]", "animMenuHandler")
g_cvarAccessFlag = register_cvar("anim_menu_access_flag", "")
loadModel(ANIM_MODEL)
}
public plugin_precache()
{
precache_model(ANIM_MODEL)
}
public plugin_end()
{
ArrayDestroy(g_animData)
}
public loadModel(model[])
{
new file = fopen(model, "rt")
new numseq, seqindex, i, Float:framerate
new seqDesc[SEQ_DESC]
fseek(file, 164, SEEK_SET)
fread(file, numseq, BLOCK_INT)
fread(file, seqindex, BLOCK_INT)
for(i = 0; i < numseq; i++)
{
fseek(file, seqindex + 176*i, SEEK_SET)
fread_blocks(file, seqDesc[SEQ_LABEL], 32, BLOCK_CHAR)
fread(file, seqDesc[SEQ_FPS], BLOCK_INT)
fseek(file, 20, SEEK_CUR)
fread(file, seqDesc[SEQ_FRAMES], BLOCK_INT)
framerate = 256.0 * Float:seqDesc[SEQ_FPS] / (seqDesc[SEQ_FRAMES] - 1)
seqDesc[SEQ_FRAMERATE] = _:framerate
ArrayPushArray(g_animData, seqDesc)
menu_additem(g_animMenu, seqDesc[SEQ_LABEL], "")
}
fclose(file)
}
public client_putinserver(id)
{
if (!g_playerData[id][ENT_MODEL])
createPlayerEnt(id)
}
public client_disconnect(id)
{
stopAnim(id)
}
public createPlayerEnt(id)
{
new ent = engfunc(EngFunc_CreateNamedEntity, g_allocString)
set_pev(ent, pev_rendermode, kRenderTransAdd)
set_pev(ent, pev_renderamt, 0.0)
set_pev(ent, pev_owner, id)
engfunc(EngFunc_SetModel, ent, ANIM_MODEL)
g_playerData[id][ENT_CAM] = ent
ent= engfunc(EngFunc_CreateNamedEntity, g_allocString)
engfunc(EngFunc_SetModel, ent, ANIM_MODEL)
set_pev(ent, pev_movetype, MOVETYPE_FLY)
set_pev(ent, pev_controller_1, 63.75)
g_playerData[id][ENT_ANIM] = ent
ent= engfunc(EngFunc_CreateNamedEntity, g_allocString)
set_pev(ent, pev_movetype, MOVETYPE_FOLLOW)
set_pev(ent, pev_aiment, g_playerData[id][ENT_ANIM])
set_pev(ent, pev_effects, EF_NODRAW)
g_playerData[id][ENT_MODEL] = ent
}
public cmdAnim(id)
{
if(is_user_alive(id)){
new access[32], flag
get_pcvar_string(g_cvarAccessFlag, access, 31)
flag = read_flags(access)
if (!flag || (get_user_flags(id)&flag))
menu_display(id, g_animMenu)
else
client_print(id, print_chat, "Yetki Yok.")
}
}
public startAnim(id, anim)
{
new seqDesc[SEQ_DESC]
ArrayGetArray(g_animData, anim, seqDesc)
new ent = g_playerData[id][ENT_ANIM]
new modelEnt = g_playerData[id][ENT_MODEL]
// set_pev(ent, pev_framerate, seqDesc[SEQ_FRAMERATE])
set_pev(ent, pev_framerate, 1.0)
// set_pev(ent, pev_animtime, (seqDesc[SEQ_FRAMES] - 1)/seqDesc[SEQ_FPS])
set_pev(ent, pev_sequence, anim)
set_pev(ent, pev_gaitsequence, anim)
new Float:origin[3], Float:mins[3]
pev(id, pev_origin, origin)
pev(id, pev_mins, mins)
mins[0] = origin[0]
mins[1] = origin[1]
mins[2] += origin[2]
set_pev(ent, pev_origin, mins)
set_pev(modelEnt, pev_effects, 0)
new model[64]
get_user_info(id, "model", model, 63)
format(model, 63, "models/player/%s/%s.mdl", model, model)
engfunc(EngFunc_SetModel, modelEnt, model)
set_pev(modelEnt, pev_body, pev(id, pev_body))
set_pev(modelEnt, pev_skin, pev(id, pev_skin))
set_pev(ent, pev_controller_0, 128)
set_pev(ent, pev_controller_1, 128)
pev(id, pev_angles, mins)
mins[0] = 0.0
set_pev(ent, pev_angles, mins)
set_pev(ent, pev_v_angle, mins)
engfunc(EngFunc_SetView, id, g_playerData[id][ENT_CAM])
g_playerData[id][ANIM_PLAYING] = 1
set_pev(id, pev_effects, EF_NODRAW)
}
public stopAnim(id)
{
set_pev(g_playerData[id][ENT_MODEL], pev_effects, EF_NODRAW)
g_playerData[id][ANIM_PLAYING] = 0
set_pev(id, pev_effects, 0)
engfunc(EngFunc_SetView, id, id)
}
public animMenuHandler(id, menu, item)
{
if(item == MENU_EXIT)
return PLUGIN_HANDLED
new access[32], flag
get_pcvar_string(g_cvarAccessFlag, access, 31)
flag = read_flags(access)
if (flag && !(get_user_flags(id)&flag))
{
client_print(id, print_chat, "www.csplugin.com")
return PLUGIN_HANDLED
}
if (!(pev(id, pev_flags)&FL_ONGROUND))
{
client_print(id, print_chat, "Yerinde dur!")
return PLUGIN_HANDLED
}
startAnim(id, item)
menu_display(id, g_animMenu, floatround(item/7.0, floatround_floor))
return PLUGIN_HANDLED
}
public fwdCmdStart(id, uc, randseed)
{
if (is_user_alive(id) && g_playerData[id][ANIM_PLAYING])
{
if (!get_uc(uc, UC_Buttons))
{
static Float:fOrigin[3], Float:fAngle[3], Float:origin[3]
pev( id, pev_origin, origin )
pev(id, pev_view_ofs, fOrigin)
xs_vec_add(origin, fOrigin, origin)
xs_vec_copy(origin, fOrigin)
pev(id, pev_v_angle, fAngle)
static Float:fVBack[3]
angle_vector(fAngle, ANGLEVECTOR_FORWARD, fVBack)
fOrigin[2] += 20.0
fOrigin[0] += (-fVBack[0] * 150.0)
fOrigin[1] += (-fVBack[1] * 150.0)
fOrigin[2] += (-fVBack[2] * 150.0)
static tr
tr = 0
engfunc(EngFunc_TraceLine, origin, fOrigin, IGNORE_MONSTERS, id, tr)
get_tr2(tr, TR_vecEndPos, fOrigin)
free_tr2(tr)
engfunc(EngFunc_SetOrigin, g_playerData[id][ENT_CAM], fOrigin)
set_pev(g_playerData[id][ENT_CAM], pev_angles, fAngle)
}
else
stopAnim(id)
}
}
public fwdPlayerKilled(id)
{
stopAnim(id)
}
PHP- Kodu:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>
#define VERSION "1.0"
#define pev_no_open pev_iuser4
new pCvarEnabled
new pCvarBlockDoorButtons
new g_iFwdSpawn
public plugin_init()
{
unregister_forward(FM_Spawn,g_iFwdSpawn)
if(engfunc(EngFunc_FindEntityByString, FM_NULLENT, "classname","func_door_rotating") || engfunc(EngFunc_FindEntityByString, FM_NULLENT, "classname","func_door"))
{
register_plugin("(ON) Open doors with a shot", VERSION, "Starsailor")
register_cvar("open_doors_version",VERSION,FCVAR_SERVER|FCVAR_SPONLY)
pCvarEnabled = register_cvar("od_enabled", "1")
pCvarBlockDoorButtons = register_cvar("od_filterdoors","0")
RegisterHam(Ham_TraceAttack, "func_door_rotating", "ham_open_door")
RegisterHam(Ham_TraceAttack, "func_door", "ham_open_door")
}
else
{
register_plugin("(OFF) Open doors with a shot", VERSION, "Starsailor")
pause("ad")
}
}
public plugin_precache()
{
g_iFwdSpawn = register_forward(FM_Spawn,"fw_Spawn")
}
public ham_open_door(iEnt, iAttacker, Float:fDamage, Float:vDirection[3], TraceHandle, iDamageBits)
{
if(!get_pcvar_num(pCvarEnabled))
{
return HAM_IGNORED
}
if(get_pcvar_num(pCvarBlockDoorButtons) && pev(iEnt,pev_no_open))
{
return HAM_IGNORED
}
dllfunc(DLLFunc_Use, iEnt, iAttacker)
return HAM_IGNORED
}
public fw_Spawn(iEnt)
{
if(!pev_valid(iEnt))
{
return FMRES_IGNORED
}
new szClassName[32]
pev(iEnt,pev_classname,szClassName,charsmax(szClassName))
if(!equal(szClassName,"func_button"))
{
return FMRES_IGNORED
}
new szTargetName[32]
new iTarget
pev(iEnt, pev_target, szTargetName,charsmax(szTargetName))
iTarget = 0
new szClassName2[32]
while((iTarget = engfunc(EngFunc_FindEntityByString, iTarget, "targetname", szTargetName)))
{
pev(iTarget,pev_classname,szClassName2,charsmax(szClassName2))
if(equal(szClassName2,"func_door") || equal(szClassName2,"func_door_rotating"))
{
set_pev(iTarget,pev_no_open,1)
}
}
return FMRES_IGNORED
}
İlgilenicek arkadaşlara şimdiden teşekkürler.