AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Problem with set_tr (https://forums.alliedmods.net/showthread.php?t=63902)

BLACO 12-02-2007 16:25

Problem with set_tr
 
First, I'm spanish boy(sorry for my english) (si me contestais en espaņol mejor xD) and I made this code in spanish. I traslate later, but i could forget something.

I have a problem with "set_tr( TR_flFraction, 100.0 )". I read some posts where say that with this function evade shoots. I cant do that. Someone tell me how do that?
Code:
<div style="margin:20px; margin-top:5px">     <div class="smallfont" style="margin-bottom:2px">Code:</div>     <hr /><code style="margin:0px" dir="ltr" style="text-align:left">#include <amxmodx> #include <csx> #include <fun> #include <fakemeta> #include <engine> #include <cstrike> #define PLUGIN "Duelos" #define VERSION "0.1 BETA" #define AUTHOR "[B]" // max clip &nbsp;stock const maxClip[31] = { -1, 13, -1, 10,&nbsp; 1,&nbsp; 7,&nbsp; 1,&nbsp; 30, 30,&nbsp; 1,&nbsp; 30,&nbsp; 20,&nbsp; 25, 30, 35, 25,&nbsp; 12,&nbsp; 20, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 10,&nbsp; 30, 100,&nbsp; 8, 30,&nbsp; 30, 20,&nbsp; 2,&nbsp; 7, 30, 30, -1,&nbsp; 50 }; &nbsp;// max bpammo &nbsp;stock const maxAmmo[31] = { -1, 52, -1, 90, -1, 32, -1, 100, 90, -1, 120, 100, 100, 90, 90, 90, 100, 100, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 30, 120, 200, 32, 90, 120, 60, -1, 35, 90, 90, -1, 100 }; // a sprite that will be on the players' head new gSprite //only one attacker per player new attacker[32] public plugin_init() { &nbsp; &nbsp; register_plugin(PLUGIN, VERSION, AUTHOR) &nbsp; &nbsp; register_event("ResetHUD","newRound","b") &nbsp; &nbsp; register_forward(FM_TraceLine,"desvia_balas",1); &nbsp; &nbsp; show_victim() } public plugin_precache() { &nbsp; &nbsp; gSprite = precache_model("sprites/iplayer.spr") } //When a player respawn, he call this function. public newRound (id){ &nbsp; &nbsp; attacker[attacker[id]]=attacker[id]; &nbsp; &nbsp; attacker[id]=id; } // public desvia_balas(Float:v1[3],Float:v2[3],noMonsters,pentToSkip){ &nbsp; &nbsp; new iAttacker=pentToSkip &nbsp; &nbsp; new iVictim = get_tr(TR_pHit); &nbsp; &nbsp; //is a valid victim?? &nbsp; &nbsp; if (SHARED_ValidPlayer( iVictim )){ &nbsp; &nbsp; &nbsp; &nbsp; //I dont know how to do better the next lines on this method &nbsp; &nbsp; &nbsp; &nbsp; if (attacker[iAttacker]==iAttacker && attacker[iVictim]==iVictim){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return FMRES_IGNORED &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (attacker[iVictim]!=iAttacker ){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; set_tr( TR_flFraction, 100.0 ); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; set_tr(TR_pHit,iAttacker); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return FMRES_SUPERCEDE; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; } &nbsp; &nbsp; return FMRES_IGNORED; } //when a player is damaged public client_damage(att,vic,dam,wpn,hit,ta){ &nbsp; &nbsp; set_hudmessage(50, 155,50 , -1.0, 0.2) &nbsp; &nbsp; //if is the first time victim is hurted and attacker attacks then... &nbsp; &nbsp; if (att==attacker[att] && vic==attacker[vic]){ &nbsp; &nbsp; &nbsp; &nbsp; attacker[att]=vic; &nbsp; &nbsp; &nbsp; &nbsp; attacker[vic]=att; &nbsp; &nbsp; &nbsp; &nbsp; new name[30] &nbsp; &nbsp; &nbsp; &nbsp; get_user_name(vic,name,30) &nbsp; &nbsp; &nbsp; &nbsp; show_hudmessage(att, "You must kill %s",name) &nbsp; &nbsp; &nbsp; &nbsp; get_user_name(att,name,30) &nbsp; &nbsp; &nbsp; &nbsp; show_hudmessage(vic, "You must kill %s",name) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; else if (att!=attacker[vic] && att!=vic){ &nbsp; &nbsp; &nbsp; &nbsp; show_hudmessage(att,"You can't hurt that player yet") &nbsp; &nbsp; &nbsp; &nbsp; //I use the next method because set_tr( TR_flFraction, 1.0) dont work &nbsp; &nbsp; &nbsp; &nbsp; returnHealth(vic,dam); &nbsp; &nbsp; }&nbsp; &nbsp; } public client_death(killer,victim,wpn,hit,tk){ &nbsp; &nbsp; if (killer!=attacker[victim]){ &nbsp; &nbsp; &nbsp; &nbsp; attacker[attacker[killer]]=attacker[killer] &nbsp; &nbsp; &nbsp; &nbsp; attacker[attacker[victim]]=attacker[victim] &nbsp; &nbsp; } &nbsp; &nbsp; attacker[killer]=killer &nbsp; &nbsp; attacker[victim]=victim &nbsp; &nbsp; set_user_health(killer,100) &nbsp; &nbsp; set_user_armor(killer,100) &nbsp; &nbsp; cargar_arma (killer) } public returnHealth (id, damage){ &nbsp; &nbsp; new actualHealth &nbsp; &nbsp; actualHealth=get_user_health(id) &nbsp; &nbsp; set_user_health(id,actualHealth+damage); &nbsp; &nbsp; set_user_armor(id,100) } public cargar_arma (id){ &nbsp; &nbsp; new recamara,cargadores &nbsp; &nbsp; new iwpn=get_user_weapon(id,recamara,cargadores) &nbsp; &nbsp; new arma[30] &nbsp; &nbsp; get_weaponname(iwpn,arma,30); &nbsp; &nbsp; if (iwpn!=29){ &nbsp; &nbsp; &nbsp; &nbsp; cs_set_user_bpammo(id,iwpn,maxAmmo[iwpn]) &nbsp; &nbsp; &nbsp; &nbsp; new wid = find_ent_by_owner(-1, arma, id); &nbsp; &nbsp; &nbsp; &nbsp; if(wid){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cs_set_weapon_ammo(wid,maxClip[iwpn]) &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; } } bool:SHARED_ValidPlayer( id ) { &nbsp; &nbsp; new MAXPLAYERS=get_playersnum(); &nbsp; &nbsp; if ( id < 1 || id > MAXPLAYERS ) &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; return false; &nbsp; &nbsp; } &nbsp; &nbsp; return true; } public show_victim (){ &nbsp; &nbsp; set_task(0.3,"show_victim"); &nbsp; &nbsp; new players[32] &nbsp; &nbsp; new pnum, vec1[3] &nbsp; &nbsp; new iddraw,id &nbsp; &nbsp; &nbsp; &nbsp; get_players(players,pnum,"a") &nbsp; &nbsp; for (new i = 0; i < pnum; i++) { &nbsp; &nbsp; &nbsp; &nbsp; id=players[i]; &nbsp; &nbsp; &nbsp; &nbsp; for (new j=0;j<pnum;j++){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; iddraw = players[j] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new bool:bIsAtt=false &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (new k=0;k<pnum;k++){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(iddraw==attacker[k] && k!=iddraw){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bIsAtt=true &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (get_user_team(id)==get_user_team(iddraw)) continue&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (iddraw == id) continue &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (!is_user_alive(iddraw)) continue &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (!get_user_origin(iddraw,vec1,0)) continue &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; message_begin(MSG_ONE,SVC_TEMPENTITY,vec1,id) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 21) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_coord(vec1[0]) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_coord(vec1[1]) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_coord(vec1[2]+45) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_coord(vec1[0]-2) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_coord(vec1[1]+20) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_coord(vec1[2]+46) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_short( gSprite ) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 1 ) // startframe &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 1 ) // framerate &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 3 ) // life (0.1seg) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 16) // width 16 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 16 ) // noise &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (iddraw==attacker[id]){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 255 ) // r &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 100 ) // g &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 100 ) // b &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else if (bIsAtt || id!=attacker[id]){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 100 ) // r &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 100 ) // g &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 255 ) // b &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else{ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 100 ) // r &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 255 ) // g &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 100 ) // b &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 205 ) //brightness &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; write_byte( 0 ) // speed &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; message_end() &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; } }</code><hr /> </div>

If someone need I tell what the plugin or some method do, ask me ;)

Thanks for all.

Orangutanz 12-03-2007 10:14

Re: Problem with set_tr
 
set_tr( TR_flFraction, 100.0 )

It should be:
set_tr( TR_flFraction, 1.0 )

BLACO 12-03-2007 10:42

Re: Problem with set_tr
 
Quote:

Originally Posted by Orangutanz (Post 559453)
set_tr( TR_flFraction, 100.0 )

It should be:
set_tr( TR_flFraction, 1.0 )

I tried 1.0, but don`t work(any value works). I've read that "About bullet/particle power change" and there said I can use 100.0


All times are GMT -4. The time now is 11:03.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.