hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.07.05. 06:41



Jelenlévő felhasználók

Jelenleg 350 felhasználó van jelen :: 3 regisztrált, 0 rejtett és 347 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], Majestic-12 [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  [11 hozzászólás ]  Oldal12Következő
Szerző Üzenet
 Hozzászólás témája: amx parachute javítás
HozzászólásElküldve:2012.07.22. 22:02 
Offline
Őstag
Avatar

Csatlakozott:2012.02.14. 15:09
Hozzászólások:1423
Megköszönték neki: 2 alkalommal
Valaki kijavítaná ezt ? Előre is thx
log:
Kód:
  1. L 07/22/2012 - 21:32:52: [AMXX] Displaying debug trace (plugin "amx_parachute.amxx")

  2. L 07/22/2012 - 21:32:52: [AMXX] Run time error 4: index out of bounds

  3. L 07/22/2012 - 21:32:52: [AMXX] [0] 5953584.sma::parachute_reset (line 99)

  4. L 07/22/2012 - 21:32:52: [AMXX] [1] 5953584.sma::death_event (line 94)


sma:
Kód:
  1. #include <amxmodx>

  2. #include <amxmisc>

  3. #include <engine>

  4. #include <cstrike>

  5. #include <fun>

  6.  

  7. new bool:has_parachute[33]

  8. new para_ent[33]

  9. new gCStrike = 0

  10. new pDetach, pFallSpeed, pEnabled, pCost, pPayback

  11.  

  12. #define PARACHUTE_LEVEL ADMIN_LEVEL_A

  13.  

  14. public plugin_init()

  15. {

  16.         register_plugin("Parachute", "1.3", "KRoT@L/JTP10181")

  17.         pEnabled = register_cvar("sv_parachute", "1" )

  18.         pFallSpeed = register_cvar("parachute_fallspeed", "100")

  19.         pDetach = register_cvar("parachute_detach", "1")

  20.  

  21.         if (cstrike_running()) gCStrike = true

  22.  

  23.         if (gCStrike) {

  24.  

  25.                 pCost = register_cvar("parachute_cost", "1000")

  26.                 pPayback = register_cvar("parachute_payback", "75")

  27.  

  28.                 register_concmd("amx_parachute", "admin_give_parachute", PARACHUTE_LEVEL, "<nick, #userid or @team>" )

  29.         }

  30.  

  31.         register_clcmd("say", "HandleSay")

  32.         register_clcmd("say_team", "HandleSay")

  33.  

  34.         register_event("ResetHUD", "newSpawn", "be")

  35.         register_event("DeathMsg", "death_event", "a")

  36.  

  37.         //Setup jtp10181 CVAR

  38.         new cvarString[256], shortName[16]

  39.         copy(shortName,15,"chute")

  40.  

  41.         register_cvar("jtp10181","",FCVAR_SERVER|FCVAR_SPONLY)

  42.         get_cvar_string("jtp10181",cvarString,255)

  43.  

  44.         if (strlen(cvarString) == 0) {

  45.                 formatex(cvarString,255,shortName)

  46.                 set_cvar_string("jtp10181",cvarString)

  47.         }

  48.         else if (contain(cvarString,shortName) == -1) {

  49.                 format(cvarString,255,"%s,%s",cvarString, shortName)

  50.                 set_cvar_string("jtp10181",cvarString)

  51.         }

  52. }

  53.  

  54. public plugin_natives()

  55. {

  56.         set_module_filter("module_filter")

  57.         set_native_filter("native_filter")

  58. }

  59.  

  60. public module_filter(const module[])

  61. {

  62.         if (!cstrike_running() && equali(module, "cstrike")) {

  63.                 return PLUGIN_HANDLED

  64.         }

  65.  

  66.         return PLUGIN_CONTINUE

  67. }

  68.  

  69. public native_filter(const name[], index, trap)

  70. {

  71.         if (!trap) return PLUGIN_HANDLED

  72.  

  73.         return PLUGIN_CONTINUE

  74. }

  75.  

  76. public plugin_precache()

  77. {

  78.         precache_model("models/RBS_parachute.mdl")

  79. }

  80.  

  81. public client_connect(id)

  82. {

  83.         parachute_reset(id)

  84. }

  85.  

  86. public client_disconnect(id)

  87. {

  88.         parachute_reset(id)

  89. }

  90.  

  91. public death_event()

  92. {

  93.         new id = read_data(2)

  94.         parachute_reset(id)

  95. }

  96.  

  97. parachute_reset(id)

  98. {

  99.         if(para_ent[id] > 0) {

  100.                 if (is_valid_ent(para_ent[id])) {

  101.                         remove_entity(para_ent[id])

  102.                 }

  103.         }

  104.  

  105.         if (is_user_alive(id)) set_user_gravity(id, 1.0)

  106.  

  107.         has_parachute[id] = false

  108.         para_ent[id] = 0

  109. }

  110.  

  111. public newSpawn(id)

  112. {

  113.         if(para_ent[id] > 0) {

  114.                 remove_entity(para_ent[id])

  115.                 set_user_gravity(id, 1.0)

  116.                 para_ent[id] = 0

  117.         }

  118.  

  119.         if (!gCStrike || access(id,PARACHUTE_LEVEL) || get_pcvar_num(pCost) <= 0) {

  120.                 has_parachute[id] = true

  121.                 //set_view(id, CAMERA_3RDPERSON)

  122.         }

  123. }

  124.  

  125. public HandleSay(id)

  126. {

  127.         if(!is_user_connected(id)) return PLUGIN_CONTINUE

  128.  

  129.         new args[128]

  130.         read_args(args, 127)

  131.         remove_quotes(args)

  132.  

  133.         if (gCStrike) {

  134.                 if (equali(args, "buy_parachute")) {

  135.                         buy_parachute(id)

  136.                         return PLUGIN_HANDLED

  137.                 }

  138.                 else if (equali(args, "sell_parachute")) {

  139.                         sell_parachute(id)

  140.                         return PLUGIN_HANDLED

  141.                 }

  142.                 else if (containi(args, "give_parachute") == 0) {

  143.                         give_parachute(id,args[15])

  144.                         return PLUGIN_HANDLED

  145.                 }

  146.         }

  147.  

  148.         if (containi(args, "parachute") != -1) {

  149.                 if (gCStrike) client_print(id, print_chat, "[AMXX] Ejt�erny� parancsok: buy_parachute, sell_parachute, give_parachute")

  150.                 client_print(id, print_chat, "[AMXX] Az ejt�erny� haszn�lat�hoz nyomd meg az E bet�t")

  151.         }

  152.  

  153.         return PLUGIN_CONTINUE

  154. }

  155.  

  156. public buy_parachute(id)

  157. {

  158.         if (!gCStrike) return PLUGIN_CONTINUE

  159.         if (!is_user_connected(id)) return PLUGIN_CONTINUE

  160.  

  161.         if (!get_pcvar_num(pEnabled)) {

  162.                 client_print(id, print_chat, "[AMXX] Ejt�erny� plugin kikapcsolva")

  163.                 return PLUGIN_HANDLED

  164.         }

  165.  

  166.         if (has_parachute[id]) {

  167.                 client_print(id, print_chat, "[AMXX] Neked m�r van ejt�erny�d")

  168.                 return PLUGIN_HANDLED

  169.         }

  170.  

  171.         new money = cs_get_user_money(id)

  172.         new cost = get_pcvar_num(pCost)

  173.  

  174.         if (money < cost) {

  175.                 client_print(id, print_chat, "[AMXX] Nincs el�g p�nzed az ejt�erny� v�s�rl�s�hoz - Costs $%i", cost)

  176.                 return PLUGIN_HANDLED

  177.         }

  178.  

  179.         cs_set_user_money(id, money - cost)

  180.         client_print(id, print_chat, "[AMXX] Vett�l egy ejt�erny�t Haszn�lathoz nyomd meg az E bet�t")

  181.         has_parachute[id] = true

  182.  

  183.         return PLUGIN_HANDLED

  184. }

  185.  

  186. public sell_parachute(id)

  187. {

  188.         if (!gCStrike) return PLUGIN_CONTINUE

  189.         if (!is_user_connected(id)) return PLUGIN_CONTINUE

  190.  

  191.         if (!get_pcvar_num(pEnabled)) {

  192.                 client_print(id, print_chat, "[AMXX] Ejt�erny� plugin kikapcsolva")

  193.                 return PLUGIN_HANDLED

  194.         }

  195.  

  196.         if (!has_parachute[id]) {

  197.                 client_print(id, print_chat, "[AMXX] Neked nincs ejt�erny�d ez�rt nem tudod eladni")

  198.                 return PLUGIN_HANDLED

  199.         }

  200.  

  201.         if (access(id,PARACHUTE_LEVEL)) {

  202.                 client_print(id, print_chat, "[AMXX] Te nem adhatod el az admin �ltal adott ingyen ejt�erny�t!")

  203.                 return PLUGIN_HANDLED

  204.         }

  205.  

  206.         parachute_reset(id)

  207.  

  208.         new money = cs_get_user_money(id)

  209.         new cost = get_pcvar_num(pCost)

  210.  

  211.         new sellamt = floatround(cost * (get_pcvar_num(pPayback) / 100.0))

  212.         cs_set_user_money(id, money + sellamt)

  213.  

  214.         client_print(id, print_chat, "[AMX] Eladtad a haszn�lt ejt�erny�d ennyi�rt: $%d", sellamt)

  215.  

  216.         return PLUGIN_CONTINUE

  217. }

  218.  

  219. public give_parachute(id,args[])

  220. {

  221.         if (!gCStrike) return PLUGIN_CONTINUE

  222.         if (!is_user_connected(id)) return PLUGIN_CONTINUE

  223.  

  224.         if (!get_pcvar_num(pEnabled)) {

  225.                 client_print(id, print_chat, "[AMXX] Ejt�erny� plugin bekapcsolva")

  226.                 return PLUGIN_HANDLED

  227.         }

  228.  

  229.         if (!has_parachute[id]) {

  230.                 client_print(id, print_chat, "[AMXX] Te nem tudod haszn�lni az ejt�erny�d mert nincs.")

  231.                 return PLUGIN_HANDLED

  232.         }

  233.  

  234.         new player = cmd_target(id, args, 4)

  235.         if (!player) return PLUGIN_HANDLED

  236.  

  237.         new id_name[32], pl_name[32]

  238.         get_user_name(id, id_name, 31)

  239.         get_user_name(player, pl_name, 31)

  240.  

  241.         if(has_parachute[player]) {

  242.                 client_print(id, print_chat, "[AMXX] %s m�r van ejt�erny�je.", pl_name)

  243.                 return PLUGIN_HANDLED

  244.         }

  245.  

  246.         parachute_reset(id)

  247.         has_parachute[player] = true

  248.  

  249.         client_print(id, print_chat, "[AMXX] Adt�l ejt�erny�t neki : %s.", pl_name)

  250.         client_print(player, print_chat, "[AMXX] %s haszn�lja az ejt�erny�t amit te adt�l neki.", id_name)

  251.  

  252.         return PLUGIN_HANDLED

  253. }

  254.  

  255. public admin_give_parachute(id, level, cid) {

  256.  

  257.         if (!gCStrike) return PLUGIN_CONTINUE

  258.  

  259.         if(!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED

  260.  

  261.         if (!get_pcvar_num(pEnabled)) {

  262.                 client_print(id, print_chat, "[AMXX] ejt�erny� plugin kikapcsolva")

  263.                 return PLUGIN_HANDLED

  264.         }

  265.  

  266.         new arg[32], name[32], name2[32], authid[35], authid2[35]

  267.         read_argv(1,arg,31)

  268.         get_user_name(id,name,31)

  269.         get_user_authid(id,authid,34)

  270.  

  271.         if (arg[0]=='@'){

  272.                 new players[32], inum

  273.                 if (equali("T",arg[1]))         copy(arg[1],31,"TERRORIST")

  274.                 if (equali("ALL",arg[1]))       get_players(players,inum)

  275.                 else                                            get_players(players,inum,"e",arg[1])

  276.  

  277.                 if (inum == 0) {

  278.                         console_print(id,"No clients in such team")

  279.                         return PLUGIN_HANDLED

  280.                 }

  281.  

  282.                 for(new a = 0; a < inum; a++) {

  283.                         has_parachute[players[a]] = true

  284.                 }

  285.  

  286.                 switch(get_cvar_num("amx_show_activity"))       {

  287.                         case 2: client_print(0,print_chat,"ADMIN %s: adott egy ejt�erny�t ^"%s^" playernek",name,arg[1])

  288.                         case 1: client_print(0,print_chat,"ADMIN: Adott egy ejt�erny�t ^"%s^" playernek",arg[1])

  289.                 }

  290.  

  291.                 console_print(id,"[AMXX] Te adt�l egy ejt�erny�t ^"%s^" playernek",arg[1])

  292.                 log_amx("^"%s<%d><%s><>^" adt�l ejt�erny�t ^"%s^"", name,get_user_userid(id),authid,arg[1])

  293.         }

  294.         else {

  295.  

  296.                 new player = cmd_target(id,arg,6)

  297.                 if (!player) return PLUGIN_HANDLED

  298.  

  299.                 has_parachute[player] = true

  300.  

  301.                 get_user_name(player,name2,31)

  302.                 get_user_authid(player,authid2,34)

  303.  

  304.                 switch(get_cvar_num("amx_show_activity")) {

  305.                         case 2: client_print(0,print_chat,"ADMIN %s: adt�l ejt�erny�t ^"%s^"",name,name2)

  306.                         case 1: client_print(0,print_chat,"ADMIN: adt�l ejt�erny�t ^"%s^"",name2)

  307.                 }

  308.  

  309.                 console_print(id,"[AMXX] te adt�l ejt�erny�t ^"%s^"", name2)

  310.                 log_amx("^"%s<%d><%s><>^" adt�l ejt�erny�t ^"%s<%d><%s><>^"", name,get_user_userid(id),authid,name2,get_user_userid(player),authid2)

  311.         }

  312.         return PLUGIN_HANDLED

  313. }

  314.  

  315. public client_PreThink(id)

  316. {

  317.         //parachute.mdl animation information

  318.         //0 - deploy - 84 frames

  319.         //1 - idle - 39 frames

  320.         //2 - detach - 29 frames

  321.  

  322.         if (!get_pcvar_num(pEnabled)) return

  323.         if (!is_user_alive(id) || !has_parachute[id]) return

  324.  

  325.         new Float:fallspeed = get_pcvar_float(pFallSpeed) * -1.0

  326.         new Float:frame

  327.  

  328.         new button = get_user_button(id)

  329.         new oldbutton = get_user_oldbutton(id)

  330.         new flags = get_entity_flags(id)

  331.  

  332.         if (para_ent[id] > 0 && (flags & FL_ONGROUND)) {

  333.  

  334.                 if (get_pcvar_num(pDetach)) {

  335.  

  336.                         if (get_user_gravity(id) == 0.1) set_user_gravity(id, 1.0)

  337.  

  338.                         if (entity_get_int(para_ent[id],EV_INT_sequence) != 2) {

  339.                                 entity_set_int(para_ent[id], EV_INT_sequence, 2)

  340.                                 entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)

  341.                                 entity_set_float(para_ent[id], EV_FL_frame, 0.0)

  342.                                 entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)

  343.                                 entity_set_float(para_ent[id], EV_FL_animtime, 0.0)

  344.                                 entity_set_float(para_ent[id], EV_FL_framerate, 0.0)

  345.                                 return

  346.                         }

  347.  

  348.                         frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0

  349.                         entity_set_float(para_ent[id],EV_FL_fuser1,frame)

  350.                         entity_set_float(para_ent[id],EV_FL_frame,frame)

  351.  

  352.                         if (frame > 254.0) {

  353.                                 remove_entity(para_ent[id])

  354.                                 para_ent[id] = 0

  355.                         }

  356.                 }

  357.                 else {

  358.                         remove_entity(para_ent[id])

  359.                         set_user_gravity(id, 1.0)

  360.                         para_ent[id] = 0

  361.                 }

  362.  

  363.                 return

  364.         }

  365.  

  366.         if (button & IN_USE) {

  367.  

  368.                 new Float:velocity[3]

  369.                 entity_get_vector(id, EV_VEC_velocity, velocity)

  370.  

  371.                 if (velocity[2] < 0.0) {

  372.  

  373.                         if(para_ent[id] <= 0) {

  374.                                 para_ent[id] = create_entity("info_target")

  375.                                 if(para_ent[id] > 0) {

  376.                                         entity_set_string(para_ent[id],EV_SZ_classname,"parachute")

  377.                                         entity_set_edict(para_ent[id], EV_ENT_aiment, id)

  378.                                         entity_set_edict(para_ent[id], EV_ENT_owner, id)

  379.                                         entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)

  380.                                         entity_set_model(para_ent[id], "models/RBS_parachute.mdl")

  381.                                         entity_set_int(para_ent[id], EV_INT_sequence, 0)

  382.                                         entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)

  383.                                         entity_set_float(para_ent[id], EV_FL_frame, 0.0)

  384.                                         entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)

  385.                                 }

  386.                         }

  387.  

  388.                         if (para_ent[id] > 0) {

  389.  

  390.                                 entity_set_int(id, EV_INT_sequence, 3)

  391.                                 entity_set_int(id, EV_INT_gaitsequence, 1)

  392.                                 entity_set_float(id, EV_FL_frame, 1.0)

  393.                                 entity_set_float(id, EV_FL_framerate, 1.0)

  394.                                 set_user_gravity(id, 0.1)

  395.  

  396.                                 velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed

  397.                                 entity_set_vector(id, EV_VEC_velocity, velocity)

  398.  

  399.                                 if (entity_get_int(para_ent[id],EV_INT_sequence) == 0) {

  400.  

  401.                                         frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0

  402.                                         entity_set_float(para_ent[id],EV_FL_fuser1,frame)

  403.                                         entity_set_float(para_ent[id],EV_FL_frame,frame)

  404.  

  405.                                         if (frame > 100.0) {

  406.                                                 entity_set_float(para_ent[id], EV_FL_animtime, 0.0)

  407.                                                 entity_set_float(para_ent[id], EV_FL_framerate, 0.4)

  408.                                                 entity_set_int(para_ent[id], EV_INT_sequence, 1)

  409.                                                 entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)

  410.                                                 entity_set_float(para_ent[id], EV_FL_frame, 0.0)

  411.                                                 entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)

  412.                                         }

  413.                                 }

  414.                         }

  415.                 }

  416.                 else if (para_ent[id] > 0) {

  417.                         remove_entity(para_ent[id])

  418.                         set_user_gravity(id, 1.0)

  419.                         para_ent[id] = 0

  420.                 }

  421.         }

  422.         else if ((oldbutton & IN_USE) && para_ent[id] > 0 ) {

  423.                 remove_entity(para_ent[id])

  424.                 set_user_gravity(id, 1.0)

  425.                 para_ent[id] = 0

  426.         }

  427. }

  428. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE

  429. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }

  430. */

  431.  

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: amx parachute javítás
HozzászólásElküldve:2012.07.22. 22:55 
Offline
Minden6ó
Avatar

Csatlakozott:2011.01.19. 12:14
Hozzászólások:4294
Megköszönt másnak: 219 alkalommal
Megköszönték neki: 289 alkalommal
Tessék:
Kód:
  1. /*******************************************************************************

  2.  

  3.   Parachute

  4.  

  5.   Version: 1.3

  6.   Author: KRoTaL/JTP10181

  7.  

  8.   0.1    Release

  9.   0.1.1  Players can't buy a parachute if they already own one

  10.   0.1.2  Release for AMX MOD X

  11.   0.1.3  Minor changes

  12.   0.1.4  Players lose their parachute if they die

  13.   0.1.5  Added amx_parachute cvar

  14.   0.1.6  Changed set_origin to movetype_follow (you won't see your own parachute)

  15.   0.1.7  Added amx_parachute <name> | admins with admin level a get a free parachute

  16.   0.1.8  JTP - Cleaned up code, fixed runtime error

  17.   1.0    JTP - Should be final version, made it work on basically any mod

  18.   1.1    JTP - Added Changes from AMX Version 0.1.8

  19.                      Added say give_parachute and parachute_fallspeed cvar

  20.                Plays the release animation when you touch the ground

  21.                Added chat responder for automatic help

  22.   1.2    JTP - Added cvar to disable the detach animation

  23.                         Redid animation code to improve organization

  24.                         Force "walk" animation on players when falling

  25.                         Change users gravity when falling to avoid choppiness

  26.   1.3    JTP - Upgraded to pCVARs

  27.  

  28.   Commands:

  29.  

  30.         say buy_parachute   -   buys a parachute (CStrike ONLY)

  31.         saw sell_parachute  -   sells your parachute (75% of the purchase price)

  32.         say give_parachute <nick, #userid or @team>  -  gives your parachute to the player

  33.  

  34.         amx_parachute <nick, #userid or @team>  -  gives a player a free parachute (CStrike ONLY)

  35.         amx_parachute @all  -  gives everyone a free parachute (CStrike ONLY)

  36.  

  37.         Press +use to slow down your fall.

  38.  

  39.   Cvars:

  40.  

  41.         sv_parachute "1"                        - 0: disables the plugin - 1: enables the plugin

  42.  

  43.         parachute_cost "0"              - cost of the parachute (CStrike ONLY)

  44.  

  45.         parachute_payback "75"          - how many percent of the parachute cost you get when you sell your parachute

  46.                                                                 (ie. (75/100) * 1000 = 750$)

  47.  

  48.         parachute_fallspeed "100"       - speed of the fall when you use the parachute

  49.  

  50.  

  51.   Setup (AMXX 1.x):

  52.  

  53.         Install the amxx file.

  54.         Enable engine and cstrike (for cs only) in the amxx modules.ini

  55.         Put the parachute.mdl file in the modname/models/ folder

  56.  

  57. *******************************************************************************/

  58.  

  59. #include <amxmodx>

  60. #include <amxmisc>

  61. #include <engine>

  62. #include <cstrike>

  63. #include <fun>

  64.  

  65. new bool:has_parachute[33]

  66. new para_ent[33]

  67. new gCStrike = 0

  68. new pDetach, pFallSpeed, pEnabled, pCost, pPayback

  69.  

  70. #define PARACHUTE_LEVEL ADMIN_LEVEL_A

  71.  

  72. public plugin_init()

  73. {

  74.         register_plugin("Parachute", "1.3", "KRoT@L/JTP10181")

  75.         pEnabled = register_cvar("sv_parachute", "1" )

  76.         pFallSpeed = register_cvar("parachute_fallspeed", "100")

  77.         pDetach = register_cvar("parachute_detach", "1")

  78.  

  79.         if (cstrike_running()) gCStrike = true

  80.  

  81.         if (gCStrike) {

  82.  

  83.                 pCost = register_cvar("parachute_cost", "0")

  84.                 pPayback = register_cvar("parachute_payback", "75")

  85.  

  86.                 register_concmd("amx_parachute", "admin_give_parachute", PARACHUTE_LEVEL, "<nick, #userid or @team>" )

  87.         }

  88.  

  89.         register_clcmd("say", "HandleSay")

  90.         register_clcmd("say_team", "HandleSay")

  91.  

  92.         register_event("ResetHUD", "newSpawn", "be")

  93.         register_event("DeathMsg", "death_event", "a")

  94.  

  95.         //Setup jtp10181 CVAR

  96.         new cvarString[256], shortName[16]

  97.         copy(shortName,15,"chute")

  98.  

  99.         register_cvar("jtp10181","",FCVAR_SERVER|FCVAR_SPONLY)

  100.         get_cvar_string("jtp10181",cvarString,255)

  101.  

  102.         if (strlen(cvarString) == 0) {

  103.                 formatex(cvarString,255,shortName)

  104.                 set_cvar_string("jtp10181",cvarString)

  105.         }

  106.         else if (contain(cvarString,shortName) == -1) {

  107.                 format(cvarString,255,"%s,%s",cvarString, shortName)

  108.                 set_cvar_string("jtp10181",cvarString)

  109.         }

  110. }

  111.  

  112. public plugin_natives()

  113. {

  114.         set_module_filter("module_filter")

  115.         set_native_filter("native_filter")

  116. }

  117.  

  118. public module_filter(const module[])

  119. {

  120.         if (!cstrike_running() && equali(module, "cstrike")) {

  121.                 return PLUGIN_HANDLED

  122.         }

  123.  

  124.         return PLUGIN_CONTINUE

  125. }

  126.  

  127. public native_filter(const name[], index, trap)

  128. {

  129.         if (!trap) return PLUGIN_HANDLED

  130.  

  131.         return PLUGIN_CONTINUE

  132. }

  133.  

  134. public plugin_precache()

  135. {

  136.         precache_model("models/RBS_parachute.mdl")

  137. }

  138.  

  139. public client_connect(id)

  140. {

  141.         parachute_reset(id)

  142. }

  143.  

  144. public client_disconnect(id)

  145. {

  146.         parachute_reset(id)

  147. }

  148.  

  149. public death_event()

  150. {

  151.         new id = read_data(2)

  152.         parachute_reset(id)

  153. }

  154.  

  155. parachute_reset(id)

  156. {

  157.         if(para_ent[id] > 0) {

  158.                 if (is_valid_ent(para_ent[id])) {

  159.                         remove_entity(para_ent[id])

  160.                 }

  161.         }

  162.  

  163.         if (is_user_alive(id)) set_user_gravity(id, 1.0)

  164.  

  165.         has_parachute[id] = false

  166.         para_ent[id] = 0

  167. }

  168.  

  169. public newSpawn(id)

  170. {

  171.         if(para_ent[id] > 0) {

  172.                 remove_entity(para_ent[id])

  173.                 set_user_gravity(id, 1.0)

  174.                 para_ent[id] = 0

  175.         }

  176.  

  177.         if (!gCStrike || access(id,PARACHUTE_LEVEL) || get_pcvar_num(pCost) <= 0) {

  178.                 has_parachute[id] = true

  179.                 //set_view(id, CAMERA_3RDPERSON)

  180.         }

  181. }

  182.  

  183. public HandleSay(id)

  184. {

  185.         if(!is_user_connected(id)) return PLUGIN_CONTINUE

  186.  

  187.         new args[128]

  188.         read_args(args, 127)

  189.         remove_quotes(args)

  190.  

  191.         if (gCStrike) {

  192.                 if (equali(args, "buy_parachute")) {

  193.                         buy_parachute(id)

  194.                         return PLUGIN_HANDLED

  195.                 }

  196.                 else if (equali(args, "sell_parachute")) {

  197.                         sell_parachute(id)

  198.                         return PLUGIN_HANDLED

  199.                 }

  200.                 else if (containi(args, "give_parachute") == 0) {

  201.                         give_parachute(id,args[15])

  202.                         return PLUGIN_HANDLED

  203.                 }

  204.         }

  205.  

  206.         if (containi(args, "parachute") != -1) {

  207.                 if (gCStrike) client_print(id, print_chat, "[AMXX] Ejtőernyő parancsok: buy_parachute, sell_parachute, give_parachute")

  208.                 client_print(id, print_chat, "[AMXX] Az ejtőernyő használatához nyomd meg az E betűt")

  209.         }

  210.  

  211.         return PLUGIN_CONTINUE

  212. }

  213.  

  214. public buy_parachute(id)

  215. {

  216.         if (!gCStrike) return PLUGIN_CONTINUE

  217.         if (!is_user_connected(id)) return PLUGIN_CONTINUE

  218.  

  219.         if (!get_pcvar_num(pEnabled)) {

  220.                 client_print(id, print_chat, "[AMXX] Ejtőernyő plugin kikapcsolva")

  221.                 return PLUGIN_HANDLED

  222.         }

  223.  

  224.         if (has_parachute[id]) {

  225.                 client_print(id, print_chat, "[AMXX] Neked már van ejtőernyőd")

  226.                 return PLUGIN_HANDLED

  227.         }

  228.  

  229.         new money = cs_get_user_money(id)

  230.         new cost = get_pcvar_num(pCost)

  231.  

  232.         if (money < cost) {

  233.                 client_print(id, print_chat, "[AMXX] Nincs elég pénzed az ejtőernyő vásárlásához - Costs $%i", cost)

  234.                 return PLUGIN_HANDLED

  235.         }

  236.  

  237.         cs_set_user_money(id, money - cost)

  238.         client_print(id, print_chat, "[AMXX] Vettél egy ejtőernyőt Használathoz nyomd meg az E betűt")

  239.         has_parachute[id] = true

  240.  

  241.         return PLUGIN_HANDLED

  242. }

  243.  

  244. public sell_parachute(id)

  245. {

  246.         if (!gCStrike) return PLUGIN_CONTINUE

  247.         if (!is_user_connected(id)) return PLUGIN_CONTINUE

  248.  

  249.         if (!get_pcvar_num(pEnabled)) {

  250.                 client_print(id, print_chat, "[AMXX] Ejtőernyő plugin kikapcsolva")

  251.                 return PLUGIN_HANDLED

  252.         }

  253.  

  254.         if (!has_parachute[id]) {

  255.                 client_print(id, print_chat, "[AMXX] Neked nincs ejtőernyőd ezért nem tudod eladni")

  256.                 return PLUGIN_HANDLED

  257.         }

  258.  

  259.         if (access(id,PARACHUTE_LEVEL)) {

  260.                 client_print(id, print_chat, "[AMXX] Te nem adhatod el az admin által adott ingyen ejtőernyőt!")

  261.                 return PLUGIN_HANDLED

  262.         }

  263.  

  264.         parachute_reset(id)

  265.  

  266.         new money = cs_get_user_money(id)

  267.         new cost = get_pcvar_num(pCost)

  268.  

  269.         new sellamt = floatround(cost * (get_pcvar_num(pPayback) / 100.0))

  270.         cs_set_user_money(id, money + sellamt)

  271.  

  272.         client_print(id, print_chat, "[AMX] Eladtad a használt ejtőernyőd ennyiért: $%d", sellamt)

  273.  

  274.         return PLUGIN_CONTINUE

  275. }

  276.  

  277. public give_parachute(id,args[])

  278. {

  279.         if (!gCStrike) return PLUGIN_CONTINUE

  280.         if (!is_user_connected(id)) return PLUGIN_CONTINUE

  281.  

  282.         if (!get_pcvar_num(pEnabled)) {

  283.                 client_print(id, print_chat, "[AMXX] Ejtőernyő plugin bekapcsolva")

  284.                 return PLUGIN_HANDLED

  285.         }

  286.  

  287.         if (!has_parachute[id]) {

  288.                 client_print(id, print_chat, "[AMXX] Te nem tudod használni az ejtőernyőd mert nincs.")

  289.                 return PLUGIN_HANDLED

  290.         }

  291.  

  292.         new player = cmd_target(id, args, 4)

  293.         if (!player) return PLUGIN_HANDLED

  294.  

  295.         new id_name[32], pl_name[32]

  296.         get_user_name(id, id_name, 31)

  297.         get_user_name(player, pl_name, 31)

  298.  

  299.         if(has_parachute[player]) {

  300.                 client_print(id, print_chat, "[AMXX] %s már van ejtőernyője.", pl_name)

  301.                 return PLUGIN_HANDLED

  302.         }

  303.  

  304.         parachute_reset(id)

  305.         has_parachute[player] = true

  306.  

  307.         client_print(id, print_chat, "[AMXX] Adtál ejtőernyöt neki : %s.", pl_name)

  308.         client_print(player, print_chat, "[AMXX] %s használja az ejtőernyőt amit te adtál neki.", id_name)

  309.  

  310.         return PLUGIN_HANDLED

  311. }

  312.  

  313. public admin_give_parachute(id, level, cid) {

  314.  

  315.         if (!gCStrike) return PLUGIN_CONTINUE

  316.  

  317.         if(!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED

  318.  

  319.         if (!get_pcvar_num(pEnabled)) {

  320.                 client_print(id, print_chat, "[AMXX] ejtőernyő plugin kikapcsolva")

  321.                 return PLUGIN_HANDLED

  322.         }

  323.  

  324.         new arg[32], name[32], name2[32], authid[35], authid2[35]

  325.         read_argv(1,arg,31)

  326.         get_user_name(id,name,31)

  327.         get_user_authid(id,authid,34)

  328.  

  329.         if (arg[0]=='@'){

  330.                 new players[32], inum

  331.                 if (equali("T",arg[1]))         copy(arg[1],31,"TERRORIST")

  332.                 if (equali("ALL",arg[1]))       get_players(players,inum)

  333.                 else                                            get_players(players,inum,"e",arg[1])

  334.  

  335.                 if (inum == 0) {

  336.                         console_print(id,"No clients in such team")

  337.                         return PLUGIN_HANDLED

  338.                 }

  339.  

  340.                 for(new a = 0; a < inum; a++) {

  341.                         has_parachute[players[a]] = true

  342.                 }

  343.  

  344.                 switch(get_cvar_num("amx_show_activity"))       {

  345.                         case 2: client_print(0,print_chat,"ADMIN %s: adott egy ejtőernyőt ^"%s^" playernek",name,arg[1])

  346.                         case 1: client_print(0,print_chat,"ADMIN: Adott egy ejtőernyőt ^"%s^" playernek",arg[1])

  347.                 }

  348.  

  349.                 console_print(id,"[AMXX] Te adtál egy ejtőernyőt ^"%s^" playernek",arg[1])

  350.                 log_amx("^"%s<%d><%s><>^" adtál ejtőernyőt ^"%s^"", name,get_user_userid(id),authid,arg[1])

  351.         }

  352.         else {

  353.  

  354.                 new player = cmd_target(id,arg,6)

  355.                 if (!player) return PLUGIN_HANDLED

  356.  

  357.                 has_parachute[player] = true

  358.  

  359.                 get_user_name(player,name2,31)

  360.                 get_user_authid(player,authid2,34)

  361.  

  362.                 switch(get_cvar_num("amx_show_activity")) {

  363.                         case 2: client_print(0,print_chat,"ADMIN %s: adtál ejtőernyőt ^"%s^"",name,name2)

  364.                         case 1: client_print(0,print_chat,"ADMIN: adtál ejtőernyőt ^"%s^"",name2)

  365.                 }

  366.  

  367.                 console_print(id,"[AMXX] te adtál ejtőernyőt ^"%s^"", name2)

  368.                 log_amx("^"%s<%d><%s><>^" adtál ejtőernyőt ^"%s<%d><%s><>^"", name,get_user_userid(id),authid,name2,get_user_userid(player),authid2)

  369.         }

  370.         return PLUGIN_HANDLED

  371. }

  372.  

  373. public client_PreThink(id)

  374. {

  375.         //parachute.mdl animation information

  376.         //0 - deploy - 84 frames

  377.         //1 - idle - 39 frames

  378.         //2 - detach - 29 frames

  379.  

  380.         if (!get_pcvar_num(pEnabled)) return

  381.         if (!is_user_alive(id) || !has_parachute[id]) return

  382.  

  383.         new Float:fallspeed = get_pcvar_float(pFallSpeed) * -1.0

  384.         new Float:frame

  385.  

  386.         new button = get_user_button(id)

  387.         new oldbutton = get_user_oldbutton(id)

  388.         new flags = get_entity_flags(id)

  389.  

  390.         if (para_ent[id] > 0 && (flags & FL_ONGROUND)) {

  391.  

  392.                 if (get_pcvar_num(pDetach)) {

  393.  

  394.                         if (get_user_gravity(id) == 0.1) set_user_gravity(id, 1.0)

  395.  

  396.                         if (entity_get_int(para_ent[id],EV_INT_sequence) != 2) {

  397.                                 entity_set_int(para_ent[id], EV_INT_sequence, 2)

  398.                                 entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)

  399.                                 entity_set_float(para_ent[id], EV_FL_frame, 0.0)

  400.                                 entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)

  401.                                 entity_set_float(para_ent[id], EV_FL_animtime, 0.0)

  402.                                 entity_set_float(para_ent[id], EV_FL_framerate, 0.0)

  403.                                 return

  404.                         }

  405.  

  406.                         frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0

  407.                         entity_set_float(para_ent[id],EV_FL_fuser1,frame)

  408.                         entity_set_float(para_ent[id],EV_FL_frame,frame)

  409.  

  410.                         if (frame > 254.0) {

  411.                                 remove_entity(para_ent[id])

  412.                                 para_ent[id] = 0

  413.                         }

  414.                 }

  415.                 else {

  416.                         remove_entity(para_ent[id])

  417.                         set_user_gravity(id, 1.0)

  418.                         para_ent[id] = 0

  419.                 }

  420.  

  421.                 return

  422.         }

  423.  

  424.         if (button & IN_USE) {

  425.  

  426.                 new Float:velocity[3]

  427.                 entity_get_vector(id, EV_VEC_velocity, velocity)

  428.  

  429.                 if (velocity[2] < 0.0) {

  430.  

  431.                         if(para_ent[id] <= 0) {

  432.                                 para_ent[id] = create_entity("info_target")

  433.                                 if(para_ent[id] > 0) {

  434.                                         entity_set_string(para_ent[id],EV_SZ_classname,"parachute")

  435.                                         entity_set_edict(para_ent[id], EV_ENT_aiment, id)

  436.                                         entity_set_edict(para_ent[id], EV_ENT_owner, id)

  437.                                         entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)

  438.                                         entity_set_model(para_ent[id], "models/parachute.mdl")

  439.                                         entity_set_int(para_ent[id], EV_INT_sequence, 0)

  440.                                         entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)

  441.                                         entity_set_float(para_ent[id], EV_FL_frame, 0.0)

  442.                                         entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)

  443.                                 }

  444.                         }

  445.  

  446.                         if (para_ent[id] > 0) {

  447.  

  448.                                 entity_set_int(id, EV_INT_sequence, 3)

  449.                                 entity_set_int(id, EV_INT_gaitsequence, 1)

  450.                                 entity_set_float(id, EV_FL_frame, 1.0)

  451.                                 entity_set_float(id, EV_FL_framerate, 1.0)

  452.                                 set_user_gravity(id, 0.1)

  453.  

  454.                                 velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed

  455.                                 entity_set_vector(id, EV_VEC_velocity, velocity)

  456.  

  457.                                 if (entity_get_int(para_ent[id],EV_INT_sequence) == 0) {

  458.  

  459.                                         frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0

  460.                                         entity_set_float(para_ent[id],EV_FL_fuser1,frame)

  461.                                         entity_set_float(para_ent[id],EV_FL_frame,frame)

  462.  

  463.                                         if (frame > 100.0) {

  464.                                                 entity_set_float(para_ent[id], EV_FL_animtime, 0.0)

  465.                                                 entity_set_float(para_ent[id], EV_FL_framerate, 0.4)

  466.                                                 entity_set_int(para_ent[id], EV_INT_sequence, 1)

  467.                                                 entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)

  468.                                                 entity_set_float(para_ent[id], EV_FL_frame, 0.0)

  469.                                                 entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)

  470.                                         }

  471.                                 }

  472.                         }

  473.                 }

  474.                 else if (para_ent[id] > 0) {

  475.                         remove_entity(para_ent[id])

  476.                         set_user_gravity(id, 1.0)

  477.                         para_ent[id] = 0

  478.                 }

  479.         }

  480.         else if ((oldbutton & IN_USE) && para_ent[id] > 0 ) {

  481.                 remove_entity(para_ent[id])

  482.                 set_user_gravity(id, 1.0)

  483.                 para_ent[id] = 0

  484.         }

  485. }

  486. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE

  487. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }

  488. */

  489.  

_________________
<<eb@>>Team Website - Közösség
17Buddies - Általam készített pályák.
GameBanana - Általam készített pályák/vágott hangok.

Kép
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: amx parachute javítás
HozzászólásElküldve:2012.07.22. 23:49 
Offline
Őstag
Avatar

Csatlakozott:2012.02.14. 15:09
Hozzászólások:1423
Megköszönték neki: 2 alkalommal
FATAL ERROR (shutting down): Host_Error: no precache: models/parachute.mdl
felraktam az alap parachute.mdlt de utána is kifagyott...
....valaki?

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: amx parachute javítás
HozzászólásElküldve:2012.07.23. 01:08 
Offline
Őskövület
Avatar

Csatlakozott:2013.01.01. 17:48
Hozzászólások:2441
Megköszönt másnak: 18 alkalommal
Megköszönték neki: 21 alkalommal
nézd meg hogy biztosan az a modell az.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: amx parachute javítás
HozzászólásElküldve:2012.07.23. 02:45 
Offline
Minden6ó
Avatar

Csatlakozott:2011.01.19. 12:14
Hozzászólások:4294
Megköszönt másnak: 219 alkalommal
Megköszönték neki: 289 alkalommal
Bence98007 írta:
nézd meg hogy biztosan az a modell az.

Kód:
  1. {

  2.         precache_model("models/RBS_parachute.mdl")

  3. }

így van a szeroján és a pluginba is így van bele írva.

_________________
<<eb@>>Team Website - Közösség
17Buddies - Általam készített pályák.
GameBanana - Általam készített pályák/vágott hangok.

Kép
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: amx parachute javítás
HozzászólásElküldve:2012.07.23. 02:50 
Offline
Őskövület
Avatar

Csatlakozott:2013.01.01. 17:48
Hozzászólások:2441
Megköszönt másnak: 18 alkalommal
Megköszönték neki: 21 alkalommal
sztem benne maradt a sima parachute.amxx fájl a plugins mappába meg a plugins iniben! mert akk ne csodálkozzatok h nem szedi le! Menj bele a plugins.inibe CTRL+F és beírod: parachute
és ha benne van kidobja.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: amx parachute javítás
HozzászólásElküldve:2012.07.23. 03:05 
Offline
Minden6ó
Avatar

Csatlakozott:2011.01.19. 12:14
Hozzászólások:4294
Megköszönt másnak: 219 alkalommal
Megköszönték neki: 289 alkalommal
Bence98007 írta:
sztem benne maradt a sima parachute.amxx fájl a plugins mappába meg a plugins iniben! mert akk ne csodálkozzatok h nem szedi le! Menj bele a plugins.inibe CTRL+F és beírod: parachute
és ha benne van kidobja.

Igazad van de nekem nem kell :D

_________________
<<eb@>>Team Website - Közösség
17Buddies - Általam készített pályák.
GameBanana - Általam készített pályák/vágott hangok.

Kép
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: amx parachute javítás
HozzászólásElküldve:2012.07.25. 19:37 
Offline
Veterán
Avatar

Csatlakozott:2011.06.07. 15:29
Hozzászólások:1728
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 63 alkalommal
Grat norbee! Tényleg. Bemásolod ugyanazt, amit a kérdező másolt... ( kommentet hozzáírva. )


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: amx parachute javítás
HozzászólásElküldve:2012.07.26. 16:33 
Offline
Minden6ó
Avatar

Csatlakozott:2011.01.19. 12:14
Hozzászólások:4294
Megköszönt másnak: 219 alkalommal
Megköszönték neki: 289 alkalommal
Nem úgyan az :D mert én le szedtem az oldalról és bele írtam a modelt neki szóval nem úgyan az.... :D

_________________
<<eb@>>Team Website - Közösség
17Buddies - Általam készített pályák.
GameBanana - Általam készített pályák/vágott hangok.

Kép
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: amx parachute javítás
HozzászólásElküldve:2012.07.26. 17:14 
Offline
Őstag
Avatar

Csatlakozott:2012.02.14. 15:09
Hozzászólások:1423
Megköszönték neki: 2 alkalommal
énis ugyanazt csináltam kb...xd

_________________
Kép


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  [11 hozzászólás ]  Oldal12Következő


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 4 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