hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.07.04. 15:34



Jelenlévő felhasználók

Jelenleg 377 felhasználó van jelen :: 2 regisztrált, 0 rejtett és 375 vendég

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot], Google [Bot]az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása Hozzászólás a témához  [16 hozzászólás ]  OldalElőző12
Szerző Üzenet
HozzászólásElküldve:2012.07.25. 18:54 
Offline
Őstag
Avatar

Csatlakozott:2012.02.14. 15:09
Hozzászólások:1423
Megköszönték neki: 2 alkalommal
Akkor ha pl 500.0-ra rakom az a kérdés h kör végéig marad-e meg vagy utána lévő körben is ha nincs beírva a free?

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve:2012.07.25. 19:03 
Offline
Tiszteletbeli

Csatlakozott:2010.02.04. 19:12
Hozzászólások:3528
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 180 alkalommal
tedd prethinkbe, ellenőrizd free van-e és ha az van, akkor írd ki 1 mp-re(így addig fennmarad amíg free van)

_________________
http://www.ebateam.eu/


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve:2012.07.25. 19:09 
Offline
Őstag
Avatar

Csatlakozott:2012.02.14. 15:09
Hozzászólások:1423
Megköszönték neki: 2 alkalommal
esetleg átírnád nekem ? xd

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve:2012.07.26. 09:19 
Offline
Signore Senior
Avatar

Csatlakozott:2011.09.09. 17:39
Hozzászólások:4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
Tessék, lehet , hogy a pozícióját átírtam, azt majd állítgatod xd

Kód:
  1. #include <amxmodx>

  2. #include <amxmisc>

  3. #include <hamsandwich>

  4. #include <fakemeta>

  5. #include <colorchat>

  6.  

  7. #define PLUGIN "Use button once"

  8. #define VERSION "1.3"

  9. #define AUTHOR "R3X"

  10.  

  11. #define MAX_BUTTONS 100

  12. #define KeysButtonsMenu (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9) // Keys: 137890

  13. #define KeysOptionsMenu (1<<0)|(1<<1)|(1<<8) //129

  14. #define KeysDelayMenu (1<<0)|(1<<1)|(1<<2)|(1<<8) //1239

  15.  

  16. #define ANNOUNCE_TASK 10000

  17.  

  18. #define m_flWait 44

  19.  

  20. //Main

  21.  

  22. new gEnt[MAX_BUTTONS];

  23. new gUsed[MAX_BUTTONS];

  24. new giPointer=0;

  25. new gOnStart[MAX_BUTTONS];

  26. new Float:gDefaultDelay[MAX_BUTTONS];

  27. new Float:gDelay[MAX_BUTTONS];

  28.  

  29. new gInMenu[33];

  30.  

  31. new gszFile[128];

  32.  

  33. new giSprite;

  34.  

  35. new gcvarDefault, gcvarTeam, gcvarFreeRun;

  36. new gcvarLimit, gcvarLimitMode, gcvarPrivilege;

  37. new gcvarMessage, gcvarRestore;

  38.  

  39. //VOTE

  40.  

  41. #define TASK_SHOWMENU 432

  42. #define TASK_RES 123

  43.  

  44. #define MAX_ROUNDS 999

  45.  

  46. #define KeysFFVote (1<<0)|(1<<1) // Keys: 12

  47.  

  48. new gcvarFRVoteTime;

  49.  

  50. new giVoteStart, giVoteTime;

  51.  

  52. new bool:gbFreeRun=false;

  53. new bool:gbVote=false;

  54.  

  55. #define VOTE_ON 0

  56. #define VOTE_OFF 1

  57.  

  58. new giVotes[33][2];

  59.  

  60. new giRounds=MAX_ROUNDS, giTime=0;

  61.  

  62. public plugin_init() {

  63.         register_plugin(PLUGIN, VERSION, AUTHOR);

  64.        

  65.         register_dictionary("common.txt");

  66.         register_dictionary("adminvote.txt");

  67.         register_dictionary("use_button_once.txt");

  68.        

  69.         register_menucmd(register_menuid("FRVote"), KeysFFVote, "PressedFRVote");

  70.         register_menucmd(register_menuid("ButtonsMenu"), KeysButtonsMenu, "PressedButtonsMenu");

  71.         register_menucmd(register_menuid("OptionsMenu"), KeysOptionsMenu, "PressedOptionsMenu");

  72.         register_menucmd(register_menuid("DelayMenu"), KeysDelayMenu, "PressedDelayMenu");

  73.        

  74.         register_clcmd("amx_buttons","cmd_amx_buttons",ADMIN_CFG,": Buttons Menu");

  75.        

  76.         //Default count of uses

  77.         gcvarDefault=register_cvar("amx_buttons_default","1");

  78.         //Who plugin analyze

  79.         //0 - anyone(plugin disabled?)

  80.         //1 - Te

  81.         //2 - Ct

  82.         //3 - Te+Ct

  83.         gcvarTeam=register_cvar("amx_buttons_team","1");

  84.         //Enabled FreeRun mode?

  85.         gcvarFreeRun=register_cvar("amx_buttons_freerun","1");

  86.         //Vote time

  87.         gcvarFRVoteTime=register_cvar("amx_freerun_votetime","10");

  88.        

  89.         //Type of limit

  90.         //0 - enabled after 'amx_freerun_limit' rounds

  91.         //1 - enabled after 'amx_freerun_limit' minutes

  92.         gcvarLimitMode=register_cvar("amx_freerun_limit_mode","0");

  93.         //Size of Limit

  94.         gcvarLimit=register_cvar("amx_freerun_limit","5");

  95.        

  96.         //Interval of message

  97.         gcvarMessage=register_cvar("amx_freerun_info","120.0",0,120.0);

  98.        

  99.         //Terrorist`s privilege

  100.         //if he use /free FreeRun will start without vote, can he?

  101.         gcvarPrivilege=register_cvar("amx_freerun_tt_privilege","1");

  102.        

  103.         //restore buttons on new round

  104.         gcvarRestore=register_cvar("amx_restore_buttons","1");

  105.        

  106.         register_clcmd("say /free","cmdVoteFreeRun");

  107.         register_clcmd("say_team /free","cmdVoteFreeRun");

  108.         register_clcmd("say free","cmdVoteFreeRun");

  109.         register_clcmd("say_team free","cmdVoteFreeRun");

  110.        

  111.         register_clcmd("say /freerun","cmdVoteFreeRun");

  112.         register_clcmd("say_team /freerun","cmdVoteFreeRun");

  113.         register_clcmd("say freerun","cmdVoteFreeRun");

  114.         register_clcmd("say_team freerun","cmdVoteFreeRun");

  115.        

  116.         register_clcmd("say /fr","cmdVoteFreeRun");

  117.         register_clcmd("say_team /fr","cmdVoteFreeRun");

  118.         register_clcmd("say fr","cmdVoteFreeRun");

  119.         register_clcmd("say_team fr","cmdVoteFreeRun");

  120.        

  121.         if( engfunc(EngFunc_FindEntityByString,-1 ,"classname", "func_button"))

  122.                 RegisterHam(Ham_Use, "func_button", "fwButtonUsed");

  123.  

  124.         if(engfunc(EngFunc_FindEntityByString,-1 ,"classname","func_rot_button"))

  125.                 RegisterHam(Ham_Use, "func_rot_button", "fwButtonUsed");

  126.                

  127.         if(engfunc(EngFunc_FindEntityByString,-1 ,"classname", "button_target"))

  128.                 RegisterHam(Ham_Use, "button_target", "fwButtonUsed");

  129.                

  130.         register_logevent( "ResetButtons", 2, "0=World triggered", "1=Round_Start");

  131.         register_forward(FM_PlayerPreThink, "fw_PlayerPreThink");

  132.         fillButtons("func_button");

  133.         fillButtons("func_rot_button");

  134.         fillButtons("button_target");

  135. }

  136. public plugin_cfg(){

  137.         setButtons();

  138.        

  139.         new iLen=0, iMax=charsmax(gszFile);

  140.         iLen=get_configsdir(gszFile, iMax );

  141.         iLen+=copy(gszFile[iLen], iMax-iLen, "/dr_buttons/");

  142.        

  143.         if(!dir_exists(gszFile)){

  144.                 set_fail_state("Not found dir: configs/dr_buttons");

  145.                 return;

  146.         }

  147.         new szMap[32];

  148.         get_mapname(szMap, 31);

  149.         formatex(gszFile[iLen], charsmax(gszFile)-iLen, "%s.ini", szMap);

  150.         if(!file_exists(gszFile)){

  151.                 return;

  152.         }

  153.         new szLine[51];

  154.         new szButton[4], szTimes[3], szDelay[5];

  155.         new Float:fDelay;

  156.         for(new i=0;read_file(gszFile, i, szLine, 50, iLen);i++){

  157.                 if(iLen==0) continue;

  158.                 trim(szLine);

  159.                 if(szLine[0]==';') continue;

  160.                 parse(szLine, szButton, 3, szTimes, 2, szDelay, 4);

  161.                 fDelay=szDelay[0]?str_to_float(szDelay):-1.0;

  162.                 set_start_value(str_to_num(szButton), str_to_num(szTimes), fDelay);

  163.         }

  164.         new Float:fInterval=get_pcvar_float(gcvarMessage);

  165.         if(fInterval > 0.0)

  166.                 set_task(120.0, "announceVote",ANNOUNCE_TASK,_,_,"b");

  167. }

  168. public plugin_precache(){

  169.         giSprite=precache_model("sprites/flare1.spr");

  170.        

  171. }

  172. public client_putinserver(id){

  173.         if(!is_user_bot(id))

  174.                 eventInGame(id);

  175. }

  176. public client_connect(id){

  177.         giVotes[id][VOTE_ON]=0;

  178.         giVotes[id][VOTE_OFF]=0;

  179. }

  180. public announceVote(){

  181.         if(get_pcvar_num(gcvarFreeRun))

  182.                 ColorChat(0,GREEN, "[FreeRun]^x01 %L",LANG_SERVER, "ANNOUNCE");

  183. }

  184. setButtons(){

  185.         new iDef=get_pcvar_num(gcvarDefault);

  186.         for(new i=0;i<giPointer;i++){

  187.                 gUsed[i]=iDef;

  188.                 gOnStart[i]=iDef;

  189.                 gDelay[i]=get_pdata_float(gEnt[i],m_flWait);

  190.                 gDefaultDelay[i]=gDelay[i];

  191.         }

  192. }

  193. fillButtons(const szClass[]){

  194.         new ent = -1;

  195.         while((ent = engfunc(EngFunc_FindEntityByString,ent ,"classname", szClass)) != 0){

  196.                 gEnt[giPointer++]=ent;

  197.                 set_pev(ent, pev_iuser4, giPointer);

  198.         }

  199. }

  200. set_start_value(ent, times, Float:delay){

  201.         new index=get_ent_index(ent);

  202.         if(index!=-1){

  203.                 gOnStart[index]=times;

  204.                 if(delay>=0.0)

  205.                         gDelay[index]=delay;

  206.         }

  207. }

  208. get_ent_index(ent){

  209.         /*

  210.         for(new i=0;i<giPointer;i++)

  211.                 if(gEnt[i]==ent) return i;

  212.         return -1;

  213.         */

  214.         return pev(ent, pev_iuser4)-1;

  215. }

  216. restoreButton(ent){

  217.         if(pev(ent, pev_frame) > 0.0){

  218.                 new Float:Life;

  219.                 pev(ent, pev_nextthink, Life);

  220.                 set_pev(ent, pev_ltime, Life-0.01);

  221.         }

  222. }

  223. public ResetButtons(){

  224.         gbFreeRun=false;

  225.         gbVote=false;

  226.         new bool:bRestore=get_pcvar_num(gcvarRestore)!=0;

  227.         for(new i=0;i<MAX_BUTTONS;i++){

  228.                 gUsed[i]=gOnStart[i];

  229.                 if(bRestore){

  230.                         restoreButton(gEnt[i]);

  231.                 }

  232.         }

  233.         giRounds++;

  234. }

  235. public fwButtonUsed(this, idcaller, idactivator, use_type, Float:value){

  236.         if(idcaller!=idactivator) return HAM_IGNORED;

  237.        

  238.         if(pev(this, pev_frame) > 0.0)

  239.                  return HAM_IGNORED;

  240.         new index=get_ent_index(this);

  241.         if(index==-1)

  242.                 return HAM_IGNORED;

  243.         if(get_user_team(idcaller)&get_pcvar_num(gcvarTeam)){

  244.                

  245.                 if(gbFreeRun){

  246.                         ColorChat(idcaller,GREEN, "[FreeRun]^x01 %L",idcaller, "BUTTON_FREERUN");

  247.                         return HAM_SUPERCEDE;

  248.                 }

  249.                 else if(gUsed[index]<=0 && gOnStart[index]!=-1){

  250.                         ColorChat(idcaller,GREEN, "[Info]^x01 %L",idcaller,"BUTTON_NOMORE");

  251.                         return HAM_SUPERCEDE;

  252.                 }

  253.                 else{

  254.                         if(gUsed[index]>0)

  255.                                 if(--gUsed[index]){

  256.                                         ColorChat(idcaller, GREEN, "[Info]^x01 %L", idcaller, "BUTTON_LEFT", gUsed[index]);

  257.                                 }else

  258.                                         ColorChat(idcaller, GREEN, "[Info]^x01 %L", idcaller, "BUTTON_ENDOFLIMIT");

  259.                 }

  260.         }

  261.        

  262.         set_task(0.1,"setDelay",this);

  263.        

  264.         return HAM_IGNORED;

  265. }

  266. public setDelay(this){

  267.         new index=get_ent_index(this);

  268.         set_pev(this, pev_nextthink, pev(this, pev_ltime)+gDelay[index]+0.01);

  269. }

  270.  

  271. //MENU--------------

  272. public cmd_amx_buttons(id, level, cid){

  273.         if(!cmd_access(id, level, cid, 1))

  274.                 return PLUGIN_HANDLED;

  275.         if(giPointer==0)

  276.                 client_print(id, print_chat, "%L", id,"NO_BUTTONS");

  277.         else

  278.                 ShowButtonsMenu(id);

  279.         return PLUGIN_HANDLED;

  280. }

  281. ShowButtonsMenu(id, trace=1){

  282.         if(!is_user_alive(id)){

  283.                 client_print(id, print_center, "%L",id, "MUST_B_ALIVE");

  284.                 return;

  285.         }

  286.         new iNow=gInMenu[id];

  287.         new iKeys=(1<<0)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<9);

  288.         new szMenu[196], iLen, iMax=(sizeof szMenu) - 1;

  289.         new szNoLimit[32];

  290.         formatex(szNoLimit,31,"(%L)",id,"NOLIMIT");

  291.         iLen=copy(szMenu, iMax,"\yButtons Menu^n");

  292.         iLen+=formatex(szMenu[iLen], iMax-iLen,"\wEnt#%d^n^n",gEnt[iNow]);

  293.         iLen+=formatex(szMenu[iLen], iMax-iLen,"%L: %d %s^n\y1\w. %L ",id, "USAGE",gOnStart[iNow],(gOnStart[iNow]==-1)?szNoLimit:"", id, "MORE");

  294.        

  295.         if(gOnStart[iNow]>=0){

  296.                 iLen+=formatex(szMenu[iLen], iMax-iLen,"\y2\w. %L",id, "WORD_LESS");

  297.                 iKeys|=(1<<1);

  298.         }else

  299.                 iLen+=formatex(szMenu[iLen], iMax-iLen,"\d2. %L\w",id,"WORD_LESS");

  300.         iLen+=formatex(szMenu[iLen], iMax-iLen,"^n^n3. %L^n^n4. %L^n^n",id, "DELAY_EDITOR",id,"OPTIONS");

  301.        

  302.         iLen+=formatex(szMenu[iLen], iMax-iLen,"5. %sNo Clip\w^n",isNoClip(id)?"\r":"");

  303.         iLen+=formatex(szMenu[iLen], iMax-iLen,"6. %sGodMode\w^n",isGodMode(id)?"\r":"");

  304.        

  305.         iLen+=formatex(szMenu[iLen], iMax-iLen,"^n7. \r%L^n\w",id, "WORD_SAVE");

  306.        

  307.         if(iNow>0){

  308.                 iLen+=formatex(szMenu[iLen], iMax-iLen,"^n8. %L",id, "BACK");

  309.                 iKeys|=(1<<7);

  310.         }

  311.         if(iNow<giPointer-1){

  312.                 iLen+=formatex(szMenu[iLen], iMax-iLen,"^n9. %L",id, "WORD_NEXT");

  313.                 iKeys|=(1<<8);

  314.         }

  315.         iLen+=formatex(szMenu[iLen], iMax-iLen,"^n0. %L", id, "EXIT");

  316.         show_menu(id, iKeys, szMenu, -1, "ButtonsMenu");

  317.         if(trace){

  318.                 new Float:fOrigin[3], Float:fOrigin2[3];

  319.                 fm_get_brush_entity_origin(gEnt[gInMenu[id]], fOrigin);

  320.                 pev(id, pev_origin, fOrigin2);

  321.                 Create_TE_BEAMPOINTS(fOrigin, fOrigin2, giSprite, 0, 10, 20, 5, 1, 255, 0, 0, 100, 50);

  322.         }

  323. }

  324. bool:isNoClip(id)

  325.         return pev(id, pev_movetype)==MOVETYPE_NOCLIP;

  326.        

  327. bool:isGodMode(id)

  328.         return pev(id, pev_takedamage)==0.0;

  329.        

  330. public PressedButtonsMenu(id, key) {

  331.         if(!is_user_alive(id)){

  332.                 client_print(id, print_center, "%L",id,"MUST_B_ALIVE");

  333.                 return;

  334.         }

  335.         /* Menu:

  336.         * Buttons Menu

  337.         * Ent#<ent>

  338.         *

  339.         * Uzyc: <ile>

  340.         * 1. Wiecej 2. Mniej

  341.         *

  342.         * 3. Editor

  343.         *

  344.         * 4. Options

  345.         *

  346.         * 5. NoClip

  347.         * 6. GodMode

  348.         *

  349.         * 7. Zapisz

  350.         *

  351.         * 8. Poprzedni

  352.         * 9. Nastepny

  353.         * 0. Wyjdz

  354.         */

  355.         new trace=0;

  356.         switch (key) {

  357.                 case 0: { // 1

  358.                         gOnStart[gInMenu[id]]++;

  359.                 }

  360.                 case 1: { // 2

  361.                         gOnStart[gInMenu[id]]--;

  362.                 }

  363.                 case 2: { // 3

  364.                         ShowDelayMenu(id);

  365.                         return;

  366.                 }

  367.                 case 3:{ //4

  368.                         ShowOptionsMenu(id);

  369.                         return;

  370.                 }

  371.                 case 4:{ //5

  372.                         set_pev(id, pev_movetype, isNoClip(id)?MOVETYPE_WALK:MOVETYPE_NOCLIP);

  373.                 }

  374.                 case 5:{ //6

  375.                         set_pev(id, pev_takedamage, isGodMode(id)?1.0:0.0);

  376.                 }

  377.                 case 6: { // 7

  378.                         save2File(id);

  379.                 }

  380.                 case 7: { // 8

  381.                         gInMenu[id]--;

  382.                         trace=1;

  383.                 }

  384.                 case 8: { // 9

  385.                         gInMenu[id]++;

  386.                         trace=1;

  387.                 }

  388.                 case 9: { // 0

  389.                         return;

  390.                 }

  391.         }

  392.         ShowButtonsMenu(id, trace);

  393. }

  394. //--------------

  395. ShowOptionsMenu(id){

  396.         if(!is_user_alive(id)){

  397.                 client_print(id, print_center, "%L",id,"MUST_B_ALIVE");

  398.                 return;

  399.         }

  400.         new szMenu[196], iLen, iMax=(sizeof szMenu) - 1;

  401.         iLen+=formatex(szMenu[iLen], iMax-iLen,"\yOptions^n^n");

  402.         iLen+=formatex(szMenu[iLen], iMax-iLen,"\w1. %L^n",id, "GOTO");

  403.         iLen+=formatex(szMenu[iLen], iMax-iLen,"2. %L^n^n",id, "NEAREST");

  404.         iLen+=formatex(szMenu[iLen], iMax-iLen,"9. %L",id, "BACK");

  405.         show_menu(id, KeysOptionsMenu, szMenu, -1, "OptionsMenu");

  406. }

  407. public PressedOptionsMenu(id, key){

  408.         if(!is_user_alive(id)){

  409.                 client_print(id, print_center, "%L",id,"MUST_B_ALIVE");

  410.                 return;

  411.         }

  412.         new trace=0;

  413.         switch (key) {

  414.                 case 0: { // 1

  415.                         go2Button(id);

  416.                 }

  417.                 case 1: { // 2

  418.                         gInMenu[id]=findTheClosest(id);

  419.                         trace=1;

  420.                 }

  421.         }

  422.         ShowButtonsMenu(id, trace);

  423. }

  424. //-------------

  425. ShowDelayMenu(id){

  426.         if(!is_user_alive(id)){

  427.                 client_print(id, print_center, "%L",id,"MUST_B_ALIVE");

  428.                 return;

  429.         }

  430.         new iNow=gInMenu[id];

  431.         new iKeys=(1<<0)|(1<<2)|(1<<8);

  432.         new szMenu[196], iLen, iMax=(sizeof szMenu) - 1;

  433.         iLen=copy(szMenu, iMax,"\yDelay Menu^n");

  434.         iLen+=formatex(szMenu[iLen], iMax-iLen,"\wEnt#%d^n^n",gEnt[iNow]);

  435.         iLen+=formatex(szMenu[iLen], iMax-iLen,"%L: %.1f^n",id, "CURRENT_DELAY", gDelay[iNow]);

  436.         iLen+=formatex(szMenu[iLen], iMax-iLen,"\y1\w. %L ",id, "MORE");

  437.         if(gDelay[iNow]>0.0){

  438.                 iLen+=formatex(szMenu[iLen], iMax-iLen,"\y2\w. %L",id, "WORD_LESS");

  439.                 iKeys|=(1<<1);

  440.         }else

  441.                 iLen+=formatex(szMenu[iLen], iMax-iLen,"\d2. %L\w",id,"WORD_LESS");

  442.         iLen+=formatex(szMenu[iLen], iMax-iLen,"^n3. %L",id, "DEFAULT");

  443.         iLen+=formatex(szMenu[iLen], iMax-iLen,"^n^n9. %L",id, "BACK");

  444.         show_menu(id, iKeys, szMenu, -1, "DelayMenu");

  445. }

  446. public PressedDelayMenu(id, key){

  447.         new iNow=gInMenu[id];

  448.         switch(key){

  449.                 case 0:{

  450.                         gDelay[iNow]+=1.0;

  451.                 }

  452.                 case 1:{

  453.                         gDelay[iNow]-=1.0;

  454.                         if(gDelay[iNow] < 0.0)

  455.                                 gDelay[iNow]=0.0;

  456.                 }

  457.                 case 2:{

  458.                         gDelay[iNow]=gDefaultDelay[iNow];

  459.                 }

  460.                 case 8:{

  461.                         ShowButtonsMenu(id, 0);

  462.                         return;

  463.                 }

  464.         }

  465.         ShowDelayMenu(id);

  466. }

  467. //-------------

  468. save2File(id){

  469.         if(file_exists(gszFile))

  470.                 delete_file(gszFile);

  471.         write_file(gszFile, ";<ent> <count> <delay>");

  472.         new szLine[35];

  473.         for(new i=0;i<giPointer;i++){

  474.                 formatex(szLine, 34, "%d %d %.1f",gEnt[i], gOnStart[i], gDelay[i]);

  475.                 write_file(gszFile, szLine);

  476.         }

  477.         client_print(id, print_center, "%L!",id,"WORD_SAVED");

  478. }

  479. findTheClosest(id){

  480.         new Float:fPlayerOrig[3];

  481.         pev(id, pev_origin, fPlayerOrig);

  482.         new Float:fOrigin[3];

  483.         fm_get_brush_entity_origin(gEnt[0], fOrigin);

  484.        

  485.         new Float:fRange=get_distance_f(fOrigin, fPlayerOrig), index=0;

  486.         new Float:fNewRange;

  487.         for(new i=1;i<giPointer;i++){

  488.                 fm_get_brush_entity_origin(gEnt[i], fOrigin);

  489.                 fNewRange=get_distance_f( fOrigin,  fPlayerOrig);

  490.                 if(fNewRange < fRange){

  491.                         fRange=fNewRange;

  492.                         index=i;

  493.                 }

  494.         }

  495.         return index;

  496. }

  497. go2Button(id, ent=-1){

  498.         if(ent==-1)

  499.                 ent=gInMenu[id];

  500.         ent=gEnt[ent];

  501.         if(!pev_valid(ent)){

  502.                 client_print(id, print_center, "%L",id,"NOTARGET");

  503.                 return;

  504.         }

  505.         new Float:fOrigin[3];

  506.         fm_get_brush_entity_origin(ent, fOrigin);

  507.         set_pev(id, pev_origin, fOrigin);

  508.         client_print(id, print_chat, "PS. No Clip :)");

  509. }

  510. //FreeRun

  511. public cmdVoteFreeRun(id){

  512.         if(get_pcvar_num(gcvarFreeRun)==0){

  513.                 ColorChat(id, GREEN, "[FreeRun]^x01 %L",id,"FREERUN_DISABLED");

  514.                 return PLUGIN_HANDLED;

  515.         }

  516.         if(gbVote){

  517.                 ColorChat(id, GREEN, "[FreeRun]^x01 %L",id,"FREERUN_VOTE_IS_NOW");

  518.                 return PLUGIN_HANDLED;

  519.         }

  520.         if(!is_user_alive(id)){

  521.                 client_print(id, print_center, "%L",id, "MUST_B_ALIVE");

  522.                 return PLUGIN_HANDLED;

  523.         }

  524.         if(get_pcvar_num(gcvarPrivilege)!=0 && !gbFreeRun && get_user_team(id)==1){

  525.                 ColorChat(id, GREEN, "[FreeRun]^x01 %L",id,"FREERUN_TT_DECIDED");

  526.                 makeFreeRun(true);

  527.                 return PLUGIN_HANDLED;

  528.         }

  529.         new iLimit=get_pcvar_num(gcvarLimit);

  530.         new iOffset=0;

  531.         if(get_pcvar_num(gcvarLimitMode)){

  532.                 iOffset = ( giTime + iLimit * 60 )  - get_systime();

  533.                 if( iOffset > 0 ){

  534.                         ColorChat(id, GREEN, "[FreeRun]^x01 %L",id,"FREERUN_NEXT_VOTE_TIME", iOffset/60, iOffset%60);

  535.                         return PLUGIN_HANDLED;

  536.                 }

  537.         }

  538.         else{

  539.                 iOffset =  min(MAX_ROUNDS, iLimit) - giRounds;

  540.                 if( iOffset > 0 ){

  541.                         ColorChat(id, GREEN, "[FreeRun]^x01 %L",id,"FREERUN_NEXT_VOTE_ROUNDS", iOffset);

  542.                         return PLUGIN_HANDLED;

  543.                 }

  544.         }

  545.        

  546.         makeVote();

  547.         return PLUGIN_CONTINUE;

  548. }

  549. //FREERUN

  550. public makeVote(){

  551.         giVoteTime=get_pcvar_num(gcvarFRVoteTime);

  552.         gbVote=true;

  553.         giVoteStart=get_systime();

  554.         set_task(float(giVoteTime), "resultsOfVote", TASK_RES);

  555.         new Players[32], playerCount;

  556.         new id;

  557.         get_players(Players, playerCount);

  558.         for (new i=0; i<playerCount; i++){

  559.                 id = Players[i];

  560.                 eventInGame(id);

  561.         }

  562.        

  563. }

  564. public resultsOfVote(tid){

  565.         gbVote=false;

  566.        

  567.         new giVotesOn=count(VOTE_ON);

  568.         new giVotesOff=count(VOTE_OFF);

  569.        

  570.         ColorChat(0,GREEN, "[FreeRun]^x01 %L %L(%d) vs %L(%d)",LANG_SERVER,"FREERUN_RESULTS",LANG_SERVER,"YES",giVotesOn,LANG_SERVER,"NO", giVotesOff);

  571.        

  572.         if( giVotesOn == giVotesOff ){

  573.                 ColorChat(0,GREEN, "[FreeRun]^x01 %L",LANG_SERVER,"FREERUN_TIE");

  574.                 return;

  575.         }

  576.         makeFreeRun((giVotesOn > giVotesOff));

  577.         ColorChat(0,GREEN, "[FreeRun]^x01 %L ^x03%L",LANG_SERVER,"FREERUN_WINOPTION",LANG_SERVER, gbFreeRun?"YES":"NO");

  578. }

  579. makeFreeRun(bool:bFR=true){

  580.         gbFreeRun=bFR;

  581.         reset();

  582.         giRounds=0;

  583.         giTime=get_systime();

  584.        

  585.  

  586.        

  587. }

  588. count(VOTE_STATE){

  589.         new iCounter=0;

  590.         for(new i=1;i<33;i++)

  591.                 if(giVotes[i][VOTE_STATE])

  592.                         iCounter++;

  593.         return iCounter;

  594. }

  595. reset(){

  596.         for(new i=1;i<33;i++){

  597.                 giVotes[i][VOTE_ON]=0;

  598.                 giVotes[i][VOTE_OFF]=0;

  599.         }

  600. }

  601. public show_menu_(tid){

  602.         new id=tid-TASK_SHOWMENU;

  603.         new iTeam=get_user_team(id);

  604.         new menu_id, keys;

  605.         new menuUp = player_menu_info( id, menu_id, keys );

  606.         // Only display menu if another isn't shown

  607.         if ( iTeam && (menuUp <= 0 || menu_id < 0) ){

  608.                 new iTime=get_pcvar_num(gcvarFRVoteTime);

  609.                 new iOffset=get_systime()-giVoteStart;

  610.                 iTime-=iOffset;

  611.                 new szMenu[128];

  612.                 formatex(szMenu, 127, "\y%L^n^n\w1. %L^n2. %L",id,"FREERUN_VOTEMENU",id,"YES",id,"NO");

  613.                 show_menu(id, KeysFFVote, szMenu, iTime, "FRVote");

  614.         }else

  615.                 set_task(1.0, "show_menu_", tid);

  616. }

  617. public eventInGame(id){

  618.         if(giVotes[id][VOTE_ON] || giVotes[id][VOTE_OFF])

  619.                 return;

  620.         if(gbVote)

  621.                 set_task(1.0, "show_menu_", id+TASK_SHOWMENU);

  622. }

  623. public PressedFRVote(id, key) {

  624.         if(gbVote==false) return;

  625.         switch (key) {

  626.                 case VOTE_ON: { // 1

  627.                         giVotes[id][VOTE_ON]=1;

  628.                 }

  629.                 case VOTE_OFF: { // 2

  630.                         giVotes[id][VOTE_OFF]=1;

  631.                 }

  632.                 default:{

  633.                         return;

  634.                 }

  635.         }

  636.         new szName[32];

  637.         get_user_name(id, szName, 31);

  638.        

  639.         client_print(0, print_chat, "* %L",LANG_PLAYER,(key==VOTE_ON)?"VOTED_FOR":"VOTED_AGAINST", szName);

  640. }

  641.  

  642. stock Create_TE_BEAMPOINTS(Float:start[3], Float:end[3], iSprite, startFrame, frameRate, life, width, noise, red, green, blue, alpha, speed){

  643.         message_begin( MSG_BROADCAST, SVC_TEMPENTITY )

  644.         write_byte( TE_BEAMPOINTS )

  645.         write_coord( floatround(start[0]) )

  646.         write_coord( floatround(start[1]) )

  647.         write_coord( floatround(start[2]) )

  648.         write_coord( floatround(end[0]) )

  649.         write_coord( floatround(end[1]) )

  650.         write_coord( floatround(end[2]) )

  651.         write_short( iSprite )                  // model

  652.         write_byte( startFrame )                // start frame

  653.         write_byte( frameRate )                 // framerate

  654.         write_byte( life )                              // life

  655.         write_byte( width )                             // width

  656.         write_byte( noise )                             // noise

  657.         write_byte( red)                                // red

  658.         write_byte( green )                             // green

  659.         write_byte( blue )                              // blue

  660.         write_byte( alpha )                             // brightness

  661.         write_byte( speed )                             // speed

  662.         message_end()

  663. }

  664. stock fm_get_brush_entity_origin(ent, Float:fOrigin[3]){

  665.         new Float:fMins[3], Float:fMaxs[3];

  666.         pev(ent, pev_mins, fMins);

  667.         pev(ent, pev_maxs, fMaxs);

  668.        

  669.         for(new i=0;i<3;i++)

  670.                 fOrigin[i]=(fMins[i]+fMaxs[i])/2;

  671. }

  672.  

  673. public fw_PlayerPreThink(id)

  674. {

  675.         if(gbFreeRun){

  676.                 set_hudmessage(0, 255, 255, 0.02, 0.20, 0, 6.0, 1.0)

  677.                 show_hudmessage(id, "Free Run")

  678.         }

  679. }


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve:2012.08.14. 15:25 
Offline
Őstag
Avatar

Csatlakozott:2012.02.14. 15:09
Hozzászólások:1423
Megköszönték neki: 2 alkalommal
megtudhatom pontosan mit írtál át vagy mit írtál bele?

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve:2012.08.15. 01:55 
Offline
Őstag

Csatlakozott:2011.06.12. 20:51
Hozzászólások:1089
Megköszönt másnak: 3 alkalommal
Megköszönték neki: 44 alkalommal
Kód:
  1.  

  2. register_forward(FM_PlayerPreThink, "fw_PlayerPreThink");

  3.  

  4. public fw_PlayerPreThink(id)

  5. {

  6.         if(gbFreeRun){

  7.                 set_hudmessage(0, 255, 255, 0.02, 0.20, 0, 6.0, 1.0)

  8.                 show_hudmessage(id, "Free Run")

  9.         }

  10. }

_________________
[img]semmi[/img]


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése: Rendezés 
Új téma nyitása Hozzászólás a témához  [16 hozzászólás ]  OldalElőző12


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 8 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole