|
楼主 |
发表于 2011-8-28 10:31:24
|
显示全部楼层
来自 中国–四川–成都
接楼上
- //change the angle to get the origin of another check points
- new Float:ang[3]
- entity_get_vector(victim,EV_VEC_v_angle,ang)
- //turn left--to get left pos
- ang[1]+=90
- entity_set_vector(victim,EV_VEC_v_angle,ang)
- VelocityByAim (victim, 13 ,hitVec);
- hitVec[0] += vicOri[0];
- hitVec[1] += vicOri[1];
- hitVec[2] += vicOri[2]+6;
- if( checkVisible(killer,victim,kilOri,hitVec) )
- return 4;
- //turn back--to get back pos
- ang[1]+=90
- entity_set_vector(victim,EV_VEC_v_angle,ang)
- new backpos=10;
- if(isDuck)
- backpos+=10
- VelocityByAim (victim,backpos,hitVec);
- hitVec[0] +=vicOri[0];
- hitVec[1] +=vicOri[1];
- hitVec[2] +=vicOri[2];
- if(isDuck)
- hitVec[2]+=7;
- if( checkVisible(killer,victim,kilOri,hitVec) )
- return 3;
- //turn right--to get right pos
- ang[1]+=90
- entity_set_vector(victim,EV_VEC_v_angle,ang)
- VelocityByAim (victim, 13+4 ,hitVec);
- hitVec[0] += vicOri[0];
- hitVec[1] += vicOri[1];
- hitVec[2] += vicOri[2]+6;
- if( checkVisible(killer,victim,kilOri,hitVec) )
- return 5;
- //------get foot pos
- //new Float:F_reV[3];
- new footpos=34
- if(isDuck)
- footpos-=18;
- hitVec[0]=vicOri[0];
- hitVec[1]=vicOri[1];
- hitVec[2]=vicOri[2]-footpos;
- if( checkVisible(killer,victim,kilOri,hitVec) )
- return 6;
- return 0;
- }
- checkVisible(killer,victim,Float:startOri[3],Float:endOri[3])
- {
- new Float:hitOri[3];
- if( victim==trace_line(killer, startOri, endOri, hitOri) )
- return 1;
- else if( vector_distance(startOri,hitOri) == vector_distance(startOri,endOri) )
- return 1;
- return 0;
- }
- drawBeam(id,staPos[],endPos[])
- {
- message_begin(MSG_ONE, SVC_TEMPENTITY, {0, 0, 0}, id);
- // message_begin(MSG_ALL,SVC_TEMPENTITY)
- write_byte(0);
- write_coord(staPos[0]);
- write_coord(staPos[1]);
- write_coord(staPos[2]);
- write_coord(endPos[0]);
- write_coord(endPos[1]);
- write_coord(endPos[2]);
- write_short(dot);
- write_byte(1); //start frame
- write_byte(1); //frame rate in 0.1's
- write_byte(get_cvar_num("fc_beam_holdtime")); //life in 0.1's
- write_byte(10); //width
- write_byte(0); //noise
- write_byte(0); //r,g,b
- write_byte(255);
- write_byte(0);
- write_byte(200); //brightness
- write_byte(0); //scroll speed
- message_end();
- new size=20;
- message_begin(MSG_ONE, SVC_TEMPENTITY, {0, 0, 0}, id);
- // message_begin(MSG_ALL,SVC_TEMPENTITY)
- write_byte( 30 )
- write_coord( endPos[0] ) //startPos
- write_coord( endPos[1] )
- write_coord( endPos[2]-size )
- write_coord( endPos[0] ) //endPos
- write_coord( endPos[1] )
- write_coord( endPos[2]+size )
- write_short(get_cvar_num("fc_beam_holdtime"))
- write_byte(220) //r,g,b
- write_byte(20)
- write_byte(60)
- message_end()
- message_begin(MSG_ONE, SVC_TEMPENTITY, {0, 0, 0}, id);
- // message_begin(MSG_ALL,SVC_TEMPENTITY)
- write_byte( 30 )
- write_coord( endPos[0]-size ) //startPos
- write_coord( endPos[1] )
- write_coord( endPos[2] )
- write_coord( endPos[0]+size ) //endPos
- write_coord( endPos[1] )
- write_coord( endPos[2] )
- write_short(get_cvar_num("fc_beam_holdtime"))
- write_byte(220) //r,g,b
- write_byte(20)
- write_byte(60)
- message_end()
- message_begin(MSG_ONE, SVC_TEMPENTITY, {0, 0, 0}, id);
- // message_begin(MSG_ALL,SVC_TEMPENTITY)
- write_byte( 30 )
- write_coord( endPos[0] ) //startPos
- write_coord( endPos[1]-size )
- write_coord( endPos[2] )
- write_coord( endPos[0] ) //endPos
- write_coord( endPos[1]+size )
- write_coord( endPos[2] )
- write_short(get_cvar_num("fc_beam_holdtime"))
- write_byte(220) //r,g,b
- write_byte(20)
- write_byte(60)
- message_end()
- }
- excutePunish(id)
- {
- new cmdStr[64],useridStr[32];
- get_cvar_string("fc_cmdstr",cmdStr,63);
- num_to_str(get_user_userid(id),useridStr,31);
- replace(cmdStr, 63, "%userid%", useridStr);
- server_cmd(cmdStr);
- }
- recordEvent(Msg[])
- {
- new data[256];
- format(data,255,"%s [Map:%s]",Msg,curMap);
- log_to_file("FindCheater.log",data);
- //log_to_file("../configs/FindCheater.log",data);
- }
- /* ----------------------------- Vote ------------------------------ */
- public InitVote(target)
- {
- if( !is_user_connected(target) || is_user_admin(target) )
- return PLUGIN_HANDLED;
- if( !get_cvar_num("fc_startvote") ){
- excutePunish(target);
- return PLUGIN_HANDLED;
- }
- /* new Float:voting = get_cvar_float("amx_last_voting")
- if ( voting > get_gametime() )
- {
- new str[512];
- format(str,511,"^x04【征战提示】投票將延遲 ^x03%d ^x04秒",MAXHODESEC)
- client_color(0, 0, str);
- //client_print(0,print_chat,"投票將延遲 %d 秒",MAXHODESEC);
- set_task(MAXHODESEC*1.0,"InitVote",target)
- return PLUGIN_HANDLED;
- }*/
- new str[128];
- switch( g_startVoteType ){
- case 0: format(str,127," %d times surpassed the Speed limit",g_playerSpeedWarn[target]);
- case 1: format(str,127," %d times killed player through the wall",g_playerThWallWarn[target]);
- case 2: format(str,127," %d times killed player when he is blinding",g_playerFlashWarn[target]);
- }
- new menuBody[512],pname[32];
- get_user_name(target,pname,31);
- new len=format(menuBody,511,"\r 請問你 %s 是否作弊者 ? ^n",pname);
- len+=format(menuBody[len],511-len,"\d( %s )^n^n",str);
- len+=format(menuBody[len],511-len,"\w8. 是.他是作弊者 ! ^n");
- len+=format(menuBody[len],511-len,"\w9. 不是.他是射神 ! ^n");
- show_menu(0,KEY8|KEY9,menuBody,MAXHODESEC-1,"anyVoteMenu");
- /* new Float:vote_time = MAXHODESEC*1.0 + 2.0
- set_cvar_float("amx_last_voting", get_gametime() + vote_time)*/
- g_voteCount[0]=0;
- g_voteCount[1]=0;
- set_task(MAXHODESEC*1.0,"showResult",target);
- return PLUGIN_HANDLED
- }
- public actionMenu(id,key)
- {
- g_voteCount[key-7]++;
- new pname[32];
- get_user_name(id,pname,31);
- new str[512];
- format(str,511,"^x04【征战提示】^x03%s ^x04選擇了 ^x03%s",pname,g_voteResStr[key-7])
- client_color(0, id, str);
- //client_print(0,print_chat,"%s 選擇 %s",pname,g_voteResStr[key-7]);
- return PLUGIN_HANDLED
- }
- public showResult(target)
- {
- new str[512];
- new Float:result=0.0;
- result = ( g_voteCount[0]+g_voteCount[1] ) ? (float(g_voteCount[0]) / float( get_playersnum(0) ) ) : 0.0
- if( result>=get_cvar_float("fc_voterate") & is_user_connected(target) ){
- format(str,511,"^x04【征战提示】結果 ^x03%0.1f . ^x04是 ^x03%d . ^x04不是 ^x03%d .作弊者將會被懲罰!",result,g_voteCount[0],g_voteCount[1])
- client_color(0, id, str);
- //client_print(0,print_chat,"結果 %0.1f . 是 %d . 不是 %d .作弊者將會被懲罰!",result,g_voteCount[0],g_voteCount[1]);
- excutePunish(target);
- }
- else //client_print(0,print_chat,"結果 %0.1f . 是 %d . 不是 %d !",result,g_voteCount[0],g_voteCount[1]);
- format(str,511,"^x04【征战提示】結果 ^x03%0.1f . ^x04是 ^x03%d . ^x04不是 ^x03%d !",result,g_voteCount[0],g_voteCount[1])
- client_color(0, id, str);
- return PLUGIN_HANDLED;
- }
- /* ------------------ Info --------------------*/
- public disInfo(id)
- {
- const SIZE=1536
- new msg[SIZE+1],len=0,players[32],num,pname[32],t;
- get_players(players,num);
- //CS1.5
- /* if( get_cvar_num("fc_startvote") )
- len += format(msg[len], SIZE - len, "如果你的警告到了上限?!系統將自動投票!^n^n")
- else len += format(msg[len], SIZE - len, "如果你的警告到了上限?!您將被懲罰!^n^n")
- for(new i=0;i<num;i++){
- t=players;
- if( !g_playerThWallWarn[t] & !g_playerSpeedWarn[t] && !g_playerFlashWarn[t])
- continue;
- else {
- get_user_name(t,pname,31);
- len += format(msg[len], SIZE - len, "%s---->穿牆警告( %d )---->速度警告( %d )---->閃光警告( %d )^n^n",pname,g_playerThWallWarn[t],g_playerSpeedWarn[t],g_playerFlashWarn[t]);
- }
- }
- len += format(msg[len], SIZE - len, "^n穿牆警告到達極限 (穿牆警告) : %d^n",get_cvar_num("fc_thwallwarntime"));
- len += format(msg[len], SIZE - len, "速度警告到達極限 (速度警告) : %d^n",get_cvar_num("fc_speedwarntime"));
- len += format(msg[len], SIZE - len, "閃光警告到達極限 (閃光警告) : %d",get_cvar_num("fc_flashwarntime"));
- */
- //CS1.6
- len += format(msg[len], SIZE - len, "<html><body>");
- len += format(msg[len], SIZE - len, "<center>");
- len += format(msg[len], SIZE - len, "<table width=^"25%^" border=^"1^">");
- len += format(msg[len], SIZE - len, "<tr><td><b>玩家名稱</b></td><td><b>穿牆</b></td><td><b>速度警告</b></td><td><b>閃光警告</b></td>");
- for(new i=0;i<num;i++){
- t=players;
- if( !g_playerThWallWarn[t] & !g_playerSpeedWarn[t] && !g_playerFlashWarn[t])
- continue;
- else {
- get_user_name(t,pname,31);
- len += format(msg[len], SIZE - len, "<tr><td>%s</td><td>%d</td><td>%d</td><td>%d</td>",pname,g_playerThWallWarn[t],g_playerSpeedWarn[t],g_playerFlashWarn[t]);
- }
- }
- len += format(msg[len], SIZE - len, "</table>");
- len += format(msg[len], SIZE - len, "<p></p>");
- if( get_cvar_num("fc_startvote") )
- len += format(msg[len], SIZE - len, "<p><b>如果你的警告到達極限?!系統將會投票 !</b></p>");
- else len += format(msg[len], SIZE - len, "<p><b>如果你的警告到達極限?!您將會被懲罰 !</b></p>");
- len += format(msg[len], SIZE - len, "<p align=left><b>現在設置:</b></p>");
- len += format(msg[len], SIZE - len, "<p></p>");
- len += format(msg[len], SIZE - len, "<p align=left>穿牆警告極限(<b>穿牆警告</b>): %d</p>",get_cvar_num("fc_thwallwarntime"));
- len += format(msg[len], SIZE - len, "<p align=left>速度警告極限(<b>速度警告</b>): %d</p>",get_cvar_num("fc_speedwarntime"));
- len += format(msg[len], SIZE - len, "<p align=left>閃光警告極限(<b>閃光警告</b>): %d</p>",get_cvar_num("fc_flashwarntime"));
- show_motd ( id, msg, "FC Stat");
- return PLUGIN_CONTINUE;
- }
复制代码 |
|