Plugin speedspeed buguje freeztime na JB b...
Panda
24.07.2014
Witam! Na serwerze zainstalowałem JB Cypisa 1.0.7o, mam tam też zainstalowany plugin speespeed.amxx, niestety musiałem go wyłączyć ponieważ przez niego niema freeztime'u na początku rundy. Chciałbym się dowiedzieć czy jest w ogóle możliwość edycji tego pluginu tak aby nie stwarzał w/w problemu, jeśli tak prosiłbym o edycje. Z góry dziękuje i pozdrawiam!
Panda
24.07.2014
Ehh zapomniałem, proszę:
#include <amxmodx> #include <amxmisc> #include <fakemeta> #define PLUGIN "SpeedSpeed" #define VERSION "1.0" #define AUTHOR "R3X" new gfwUpdate; new const Float:gfCSSpeeds[]={ 000.0, 250.0, 000.0, 260.0, 250.0, 240.0, 250.0, 250.0, 240.0, 250.0, 250.0, 250.0, 250.0, 210.0, 240.0, 240.0, 250.0, 250.0, 210.0, 250.0, 220.0, 230.0, 230.0, 250.0, 210.0, 250.0, 250.0, 235.0, 221.0, 250.0, 245.0 } new giUserWeapon[33]; new Float:gfUserSpeed[33]; new Float:gfOffset[33]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_event("CurWeapon", "eventCurWeapon", "be", "1=1"); gfwUpdate = CreateMultiForward("speed_update", ET_CONTINUE, FP_CELL, FP_CELL); } public plugin_natives(){ register_library("SpeedSpeed"); register_native("add_user_speed", "_add_user_speed"); register_native("update_user_speed", "_update_user_speed"); } public eventCurWeapon(id){ new wid = read_data(2); giUserWeapon[id] = wid; updateSpeed(id, wid); } public updateSpeed(id, wid){ gfUserSpeed[id] = gfCSSpeeds[wid]; gfOffset[id] = 0.0; new ret; ExecuteForward(gfwUpdate, ret, id, wid); if(ret == 0) gfUserSpeed[id] += gfOffset[id]; __set_user_speed(id, gfUserSpeed[id]); } stock __set_user_speed(id, Float:fSpeed = -1.0){ if(fSpeed < 0.0){ new wid = get_user_weapon(id); fSpeed = gfCSSpeeds[wid]; } set_pev(id, pev_maxspeed, fSpeed); client_cmd(id, "cl_forwardspeed %.1f", fSpeed); client_cmd(id, "cl_backspeed %.1f", fSpeed); client_cmd(id, "cl_sidespeed %.1f", fSpeed); } public _add_user_speed(plugin, params){ if(params < 2){ log_error(10, "Bad parameter number"); return 0; } new id = get_param(1); if(!is_user_connected(id)) return 0; new Float:fOffset = get_param_f(2); gfOffset[id] += fOffset; return 1; } public _update_user_speed(plugin, params){ if(params < 1){ log_error(10, "Bad parameter number"); return 0; } new id = get_param(1); if(!is_user_connected(id)) return 0; updateSpeed(id, giUserWeapon[id]); return 1; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */
Załączone pliki
Panda
25.07.2014
Freeztime działa ale gdy nadal trwa i użyje sprintu mogę normalnie chodzić a inni zamrożeni. Obstawiam że problem jest w drugim pluginie:
#include <amxmodx> #include <amxmisc> #include <fakemeta> #include <speedspeed> #include <hamsandwich> #define PLUGIN "Sprinting" #define VERSION "1.0" #define AUTHOR "R3X" new const Float:fSprintingTime = 5.0; new const Float:fRestingTime = 10.0; new const Float:fSpeedUp = 150.0; new Float:gfSpeedOffset[33]; new giWid[33]; new Float:gfSprint[33]; new Float:gfRest[33]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_event("CurWeapon", "eventCurWeapon", "be", "1=1"); RegisterHam(Ham_Spawn, "player", "fwHamSpawn", 1); register_forward(FM_PlayerPreThink, "fwPlayerPretThink", 1); } //SpeedSpeed public speed_update(id){ add_user_speed(id, gfSpeedOffset[id]); } public eventSpeedUp(id){ new Float:fNow = get_gametime(); if(fNow < gfRest[id]){ set_hudmessage(255, 255, 255, -1.0, 0.3, 0, 0.0, 2.0); show_hudmessage(id, "Odpocznij chwile") return; } gfSpeedOffset[id] = fSpeedUp; update_user_speed(id); gfSprint[id] = fNow + fSprintingTime; set_hudmessage(255, 255, 255, -1.0, 0.3, 0, 0.0, 2.0); show_hudmessage(id, "Sprint!") } public eventSpeedDown(id){ gfSpeedOffset[id] = 0.0; update_user_speed(id); new Float:fNow = get_gametime(); gfRest[id] = fNow + fRestingTime; set_hudmessage(255, 255, 255, -1.0, 0.3, 0, 0.0, 2.0); show_hudmessage(id, "Tyla") } public fwHamSpawn(id) gfSpeedOffset[id] = 0.0; public eventCurWeapon(id){ new wid = read_data(2); giWid[id] = wid; } public fwPlayerPretThink(id){ if(!is_user_alive(id) || !(get_user_flags(id) & ADMIN_LEVEL_A) || get_user_team(id)==1) return FMRES_IGNORED; new wid = giWid[id]; new button = pev(id, pev_button) & IN_USE; new oldbuttons = pev(id, pev_oldbuttons)& IN_USE; if((button && !oldbuttons)){ if(wid == CSW_KNIFE) eventSpeedUp(id); } else if(gfSpeedOffset[id]){ if((!button && oldbuttons) || wid != CSW_KNIFE || gfSprint[id] < get_gametime()) eventSpeedDown(id); } return FMRES_IGNORED; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ ansicpg1250\\ uc1\\ deff0\\ deflang1045\\ deflangfe1045{\\ fonttbl{\\ f0 Tahoma;}}\n\\ f0{\\ colortbl;}{\\ *\\ generator Wine Riched20 2.0.????;}\\ pard\\ sl-240\\ slmult1\\ li0\\ fi0\\ ri0\\ sa0\\ sb0\\ s-1\\ cfpat0\\ cbpat0\n\\ par} */
Jeśli będzie trzeba to założę nowy temat.