hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.02.09. 00:07



Jelenlévő felhasználók

Jelenleg 266 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 265 vendég

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

Regisztrált felhasználók: 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  [11 hozzászólás ]  Oldal12Következő
Szerző Üzenet
 Hozzászólás témája: Befejezetlen DeathRun menü.
HozzászólásElküldve:2017.01.15. 17:03 
Offline
Félisten
Avatar

Csatlakozott:2016.03.06. 14:20
Hozzászólások:976
Megköszönt másnak: 113 alkalommal
Megköszönték neki: 137 alkalommal
Üdvözletem!

Mivel rám írtatok 1 páran , és én nem akarom egyenként elküldeni mindenkinek, de ide kirakom egyéb topic-ba akinek kell használja.., modellt mindenki magának állít elő / tölt le, vagy felmegy az én szerveremre.


Forrás
  1. #define KESZITO "s[T]* Levii"
  2. #define STEAMOM "http://steamcommunity.com/id/stuplevii"
  3. #include <amxmodx>
  4. #include <amxmisc>
  5. #include <fun>
  6. #include <hamsandwich>
  7. #include <cstrike>
  8. #include <fakemeta>
  9.  
  10. #define MAX 5   // Átírni ha több USP-t írsz vagy veszel el belőle
  11.  
  12. #define MinimumPont 1
  13. #define MaximumPont 3
  14.  
  15. #define Prefx = "DeathRun" // Üzenet Prefix
  16.  
  17.  
  18. new Szint[33],Xp[33],Pont[33],Olesek[33],Elet[33]
  19.  
  20. new knife[33]
  21. new const Kesek[][][] = {
  22.     // Kes Neve |    Szint |  Eleresi út
  23.     { "Alap KĂ©s","\rMegszerezve",       "models/v_knife.mdl" },  // 0
  24.     { "Gyors KĂ©s | \d(+5% SebessĂ©g)",  "\r5.Szintol",       "models/st_deathrun/kes/v_gyors.mdl" },  // 1
  25.     { "Gravitacio KĂ©s |\d(-20% Grav)",    "\r10.Szintol",      "models/st_deathrun/kes/v_gravi.mdl" }, // 2
  26.     { "SzáguldĂł KĂ©s |\d(+15% sebesseg)",  "\r15.Szintol",      "models/st_deathrun/kes/v_szaguldo_v2.mdl" }, // 3
  27.     { "SebzĂ©s KĂ©s |\r\d(+30% SebzĂ©s)",  "\r20. Szintol",     "models/st_deathrun/kes/v_sebzes.mdl" } // 4
  28. };
  29.  
  30. new const Level[] = {0,  5,  10, 15 , 20}
  31. new const Float:sebesseg[] = {250.0,  260.0 ,  250.0  ,  280.0 ,  250.0}
  32. new const Float:gravity[] = {1.0 ,  1.0 ,  0.84 ,  1.0 ,  1.0}
  33.  
  34.  
  35. new kivalasztottUSP[33]
  36. new const Usp[][][] = {
  37.     // Usp Neve |    Pont |  Eleresi Ăşt
  38.     { "Sima USP","", "models/v_usp.mdl" }, // 0
  39.     { "Spitfire USP | \y(+1.2x DMG)" ,"250 Pont", "models/st_deathrun/usp/v_spitfire.mdl" },  // 1
  40.     { "Tűz USP | \y(+1.3x DMG)" ,"350 Pont", "models/st_deathrun/usp/v_tuz.mdl" }, // 2
  41.     { "TerepMintás USP | \y(+1.5x DMG)" ,"750 Pont","models/st_deathrun/usp/v_terepmintas.mdl" }, // 3
  42.     { "EzĂĽst USP | \y(+1.6x DMG)" ,"1250 Pont", "models/st_deathrun/usp/v_ezust.mdl" } // 4
  43. };
  44.  
  45. new const Points[] = {0,250,350, 750,1250, 1750, 2000, 2500, 2950, 3500,4550,5000,8000,15000,20000}
  46. new const Float:dmg[] = {1.0, 1.2, 1.3, 1.5, 1.6, 1.8, 2.0, 2.1, 2.2, 2.3, 2.4, 2.4, 2.5, 2.5 , 2.6}
  47. new pistol[sizeof(Usp)][33]
  48.  
  49. public plugin_init(){
  50.     register_plugin(" DeathRun Menu ", " 1.0 ", " s[T]* Levii ");
  51.    
  52.     register_clcmd( "chooseteam","Mymenu" )
  53.     register_clcmd( "say /menu","Mymenu" )
  54.    
  55.     register_event( "CurWeapon", "SwitchGuns", "be", "1=1" )
  56.     RegisterHam( Ham_TakeDamage, "player", "damagetake" )
  57.    
  58.     register_dictionary( "deathrunmenu.txt" );
  59. }
  60. public client_death(Killer, Victim)
  61. {
  62.     if(Killer == Victim)
  63.     {
  64.         return PLUGIN_HANDLED;
  65.     }
  66.    
  67.     Olesek[Killer]++;
  68.    
  69.    
  70.     new pPont
  71.     pPont += random_num(MinimumPont, MaximumPont); //A szerkesztéshez a DEFINE-t írd át.
  72.     Pont[Killer] += pPont;
  73.    
  74.     set_hudmessage(255, 255, 255, -1.0, 0.15, 0, 6.0, 2.0);
  75.     show_hudmessage(Killer, "%L", LANG_PLAYER, "KAPOTTPONT", pPont);
  76.    
  77.     if(Szint[Killer] >= 0 && Szint[Killer] < 5){
  78.         Xp[Killer] += random_num(20,30)
  79.     }
  80.     else if(Szint[Killer] >= 5 && Szint[Killer] < 100){
  81.         Xp[Killer] += random_num(1,3)
  82.     }
  83.    
  84.     if(Xp[Killer] >= 100)
  85.     {
  86.         Szint[Killer]++
  87.         Xp[Killer] -= 100
  88.     }
  89.    
  90.     return PLUGIN_CONTINUE;
  91. }
  92. public Mymenu(id)
  93. {
  94.     static String[512];
  95.     formatex(String, charsmax(String), "%L", LANG_PLAYER, "FOMENUCIM", Szint[id],Xp[id],Pont[id]);
  96.     new menu = menu_create(String, "my_handler" );
  97.    
  98.     formatex(String, charsmax(String), "%L", LANG_PLAYER, "FOMENU1");
  99.     menu_additem(menu, String, "1");
  100.     formatex(String, charsmax(String), "%L", LANG_PLAYER, "FOMENU2");
  101.     menu_additem(menu, String, "2");
  102.     formatex(String, charsmax(String), "%L", LANG_PLAYER, "FOMENU3");
  103.     menu_additem(menu, String, "3");
  104.     formatex(String, charsmax(String), "%L", LANG_PLAYER, "FOMENU4");
  105.     menu_additem(menu, String, "4");
  106.    
  107.     menu_display(id, menu, 0);
  108. }
  109. public my_handler(id, menu, item)
  110. {
  111.     if(item == MENU_EXIT)
  112.     {
  113.         menu_destroy(menu);
  114.         return;
  115.     }
  116.     new data[9], name[64], Gomb;
  117.     new access, callback;
  118.     menu_item_getinfo(menu, item, access, data,charsmax(data),
  119.     name, charsmax(name), callback);
  120.    
  121.     Gomb = str_to_num(data);
  122.    
  123.     if(Gomb == 1)
  124.         MyKnife(id)
  125.     if(Gomb == 2)
  126.         MyUsp(id)
  127.     if(Gomb == 3)
  128.         MyShop(id)
  129.     if(Gomb == 4)
  130.         Myinformation(id)
  131. }
  132. public MyShop(id)
  133. {
  134.     static String[512];
  135.     formatex(String, charsmax(String), "%L", LANG_PLAYER, "FOMENUCIM", Szint[id],Xp[id],Pont[id]);
  136.     new menu = menu_create(String, "myshop_handler" );
  137.    
  138.     formatex(String, charsmax(String), "%L", LANG_PLAYER, "BOLT0");
  139.     menu_additem(menu, String, "0");
  140.     formatex(String, charsmax(String), "%L", LANG_PLAYER, "BOLT1");
  141.     menu_additem(menu, String, "1");
  142.     formatex(String, charsmax(String), "%L", LANG_PLAYER, "BOLT2");
  143.     menu_additem(menu, String, "2");
  144.     formatex(String, charsmax(String), "%L", LANG_PLAYER, "BOLT3");
  145.     menu_additem(menu, String, "3");
  146.     menu_display(id, menu, 0);
  147. }
  148. public myshop_handler(id, menu, item)
  149. {
  150.     if(item == MENU_EXIT)
  151.     {
  152.         menu_destroy(menu);
  153.         return;
  154.     }
  155.     new data[9], name[64], Gomb;
  156.     new access, callback;
  157.     menu_item_getinfo(menu, item, access, data,charsmax(data),
  158.     name, charsmax(name), callback);
  159.    
  160.     Gomb = str_to_num(data);
  161.    
  162.     if(Gomb == 0){
  163.         if(Szint[id] < 15 && Pont[id] >= 120)
  164.         {
  165.             Szint[id] += 1;Pont[id] -=120
  166.             print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "SIKERES")
  167.         }
  168.         else if(Pont[id] < 120 && Szint[id] < 15)
  169.             print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "KEVESPONT")  
  170.         else if(Szint[id] >= 15)
  171.             print_color(id, "!g[DeathRun]!y Te nem tudsz továbbá szintet venni, mert elĂ©rted a 15.szintet!")
  172.     }
  173.     if(Gomb == 1){
  174.         if(Pont[id] >= 24 )
  175.         {
  176.             Pont[id] -= 24;set_user_health(id,get_user_health(id) + 25)
  177.             print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "SIKERES")
  178.         }
  179.         else{ print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "KEVESPONT")
  180.         }
  181.     }
  182.     if(Gomb ==2){
  183.         if(Pont[id] >= 19)
  184.         {
  185.             Pont[id] -= 19;set_user_armor(id,get_user_armor(id) + 25)
  186.             print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "SIKERES")
  187.         }
  188.         else{ print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "KEVESPONT")
  189.         }
  190.     }
  191.     if(Gomb ==3){
  192.         if(Pont[id] >= 6 )
  193.         {
  194.             Elet[id] += 1;Pont[ id ] -= 6
  195.             print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "SIKERES")
  196.         }
  197.         else{ print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "KEVESPONT")
  198.         }
  199.     }
  200. }
  201. public MyKnife(id)
  202. {
  203.     new txt[128]
  204.     static String[512];
  205.     formatex(String, charsmax(String), "%L", LANG_PLAYER, "FOMENUCIM", Szint[id],Xp[id],Pont[id]);
  206.     new menu = menu_create(String, "myknife_handler" );
  207.    
  208.     for(new i; i<sizeof(Kesek) ; i++)
  209.     {
  210.         formatex(txt, charsmax(txt), "%s%s \d%s", knife[id] == i ? "\y" : "\w", Kesek[i][0], Szint[id] >= Level[i] ? "\r[Szint Elerve]" : Kesek[i][1])
  211.         menu_additem(menu, txt, "", 0)
  212.     }
  213.    
  214.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  215.     menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  216.     menu_setprop(menu, MPROP_NEXTNAME, "Következo");
  217.     menu_setprop(menu, MPROP_EXITNAME, "KilĂ©pĂ©s");
  218.    
  219.     menu_display(id, menu, 0)
  220.    
  221. }
  222. public myknife_handler(id, menu, item)
  223. {
  224.     if(item == MENU_EXIT)
  225.     {
  226.         menu_destroy(menu);
  227.         return PLUGIN_HANDLED;
  228.     }
  229.     if(Szint[id] >= Level[item]){
  230.         knife[id] = item
  231.         print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "SIKERES")
  232.         MyKnife(id)
  233.     }
  234.     else{
  235.         print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "KEVESSZINT")
  236.         MyKnife(id)
  237.     }
  238.     menu_destroy(menu);
  239.     return PLUGIN_HANDLED;
  240.    
  241. }
  242. public MyUsp(id)
  243. {
  244.     new txt[128],txt1[128]
  245.     static String[512];
  246.     formatex(String, charsmax(String), "%L", LANG_PLAYER, "FOMENUCIM", Szint[id],Xp[id],Pont[id]);
  247.     new menu = menu_create(String, "myusp_handler" );
  248.    
  249.     for(new i; i<sizeof(Usp) ; i++)
  250.     {
  251.         formatex(txt1, charsmax(txt1), "\r[Megszerezve]",pistol[i][id])
  252.         formatex(txt, charsmax(txt), "%s%s \r%s",kivalasztottUSP[id] == i ? "\r" : "\w",Usp[i][0], pistol[i][id] >= 1 ? txt1 : Usp[i][1],pistol[i][id])
  253.         menu_additem(menu, txt, "", 0)
  254.     }
  255.    
  256.     menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  257.     menu_setprop(menu, MPROP_NEXTNAME, "Következo");
  258.     menu_setprop(menu, MPROP_EXITNAME, "KilĂ©pĂ©s");
  259.    
  260.     menu_display(id, menu, 0)
  261.    
  262. }
  263. public myusp_handler(id, menu, item)
  264. {
  265.     if(item == MENU_EXIT)
  266.     {
  267.         menu_destroy(menu);
  268.         return PLUGIN_HANDLED;
  269.     }
  270.     if(pistol[item][id] == 0){
  271.         if(Pont[id] >= Points[item])
  272.         {
  273.             print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "SIKERES")
  274.             pistol[item][id]++;
  275.             Pont[id] -= Points[item]
  276.             MyUsp(id)
  277.         }
  278.         else print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "KEVESPONT")
  279.     }
  280.     else {
  281.         kivalasztottUSP[id] = item
  282.         print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "SIKERES")
  283.         MyUsp(id)
  284.     }
  285.     menu_destroy(menu);
  286.     return PLUGIN_HANDLED;
  287. }
  288. public Myinformation( id )
  289. {
  290.    
  291.     new szMenuName[ 512 ]
  292.    
  293.     formatex( szMenuName, sizeof( szMenuName ) -1, "\y| \dDeathRun MenĂĽ\y|^n^n^n\y| \rKĂ©szĂ­tĹ‘je: \ds[T]* Levii\y| ^n \y| \rVerziĂł: \d1.0 \y|")
  294.    
  295.     show_menu( id, (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9), szMenuName, -1, "Myinformation_handler" );
  296. }
  297. public Myinformation_handler( id, iKey )
  298. {
  299.     switch( iKey )
  300.     {
  301.         case 0:
  302.         {
  303.            
  304.             Myinformation( id );
  305.         }
  306.        
  307.         case 1..9:    return;
  308.         }
  309. }
  310. public damagetake(victim, inflictor, attacker, Float:damage) {
  311.    
  312.     if(is_user_alive(attacker) && is_user_alive(victim))
  313.     {
  314.         if(get_user_weapon(attacker) == CSW_KNIFE && knife[attacker] == 4) SetHamParamFloat(4, damage * 1.3)
  315.         if(get_user_weapon(attacker) == CSW_USP) SetHamParamFloat(4, damage * dmg[kivalasztottUSP[attacker]])
  316.        
  317.     }
  318. }
  319. public SwitchGuns(id) {
  320.     switch(get_user_weapon(id)){
  321.         case CSW_KNIFE:{
  322.             set_pev(id, pev_viewmodel2, Kesek[knife[id]][2]);
  323.             set_user_maxspeed(id, sebesseg[knife[id]])
  324.             set_user_gravity(id, gravity[knife[id]])
  325.            
  326.         }
  327.         case CSW_USP: {
  328.             set_pev(id, pev_viewmodel2, Usp[kivalasztottUSP[id]][2]);
  329.             set_user_maxspeed(id, 250.0)
  330.             set_user_gravity(id, 1.0)
  331.         }
  332.     }
  333. }
  334. public plugin_precache(){
  335.     for(new i = 0; i < sizeof(Kesek); i++)
  336.         precache_model(Kesek[i][2])
  337.     for(new i = 0; i < sizeof(Usp); i++)
  338.         precache_model(Usp[i][2])
  339. }
  340. public Ujraeledes(id) {
  341.     if(!is_user_alive( id ))
  342.         if(Elet[id] >= 1 ) {
  343.         ExecuteHam(Ham_CS_RoundRespawn, id)
  344.         Elet[id] -=1
  345.         print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "UJRAELEDTEL")
  346.     }
  347. }
  348. public Eletem(id)
  349. {
  350.     print_color(id, "!g[DeathRun]!y %L ",Elet[id],LANG_PLAYER, "ELET")
  351. }
  352. public client_connect(id)
  353. {
  354.     betoltes(id)
  355.     Szint[id] = 0
  356.     Xp[id] = 0
  357.     Pont[id] = 0
  358.     Olesek[id] = 0
  359.     Elet[id] = 0
  360.     knife[id] = 0
  361.     kivalasztottUSP[id] = 0
  362.     for(new i=0; i <= MAX-1; i++)
  363.     {
  364.         pistol[i][id] = 0
  365.     }
  366. }
  367. public client_disconnect(id)
  368. {
  369.     mentes(id)
  370. }
  371. public mentes(id) {
  372.     if(is_user_connected(id))
  373.     {
  374.         new file[192], nm[32], mentes[512]
  375.         get_user_name(id, nm, 31)
  376.         replace_all(nm, 31, "/", "_")
  377.         replace_all(nm, 31, "?", "_")
  378.         replace_all(nm, 31, "!", "_")
  379.         replace_all(nm, 31, "*", "_")
  380.         replace_all(nm, 31, "#", "_")
  381.         replace_all(nm, 31, "=", "_")
  382.         replace_all(nm, 31, "-", "_")
  383.         replace_all(nm, 31, "+", "_")
  384.         replace_all(nm, 31, ",", "_")
  385.         replace_all(nm, 31, "@", "_")
  386.         replace_all(nm, 31, "&", "_")
  387.         replace_all(nm, 31, "{", "_")
  388.         replace_all(nm, 31, "}", "_")
  389.         replace_all(nm, 31, "~", "_")
  390.         replace_all(nm, 31, ":", "_")
  391.         replace_all(nm, 31, ".", "_")
  392.         replace_all(nm, 31, "<", "_")
  393.         replace_all(nm, 31, ">", "_")
  394.         replace_all(nm, 31, "|", "_")
  395.         formatex(file, charsmax(file), "addons/amxmodx/configs/deathrun/%s.ini", nm)
  396.         delete_file(file)
  397.         format(mentes, charsmax(mentes), "%d %d %d %d %d %d %d %d",Szint[id],Xp[id],Pont[id],Olesek[id],Elet[id],knife[id],kivalasztottUSP[id],pistol[id])
  398.         write_file(file, mentes)
  399.     }
  400. }
  401. public betoltes(id)
  402. {
  403.     if(is_user_connected(id))
  404.     {
  405.         new file[192], nm[32]
  406.         get_user_name(id, nm, 31)
  407.         replace_all(nm, 31, "/", "_")
  408.         replace_all(nm, 31, "?", "_")
  409.         replace_all(nm, 31, "!", "_")
  410.         replace_all(nm, 31, "*", "_")
  411.         replace_all(nm, 31, "#", "_")
  412.         replace_all(nm, 31, "=", "_")
  413.         replace_all(nm, 31, "-", "_")
  414.         replace_all(nm, 31, "+", "_")
  415.         replace_all(nm, 31, ",", "_")
  416.         replace_all(nm, 31, "@", "_")
  417.         replace_all(nm, 31, "&", "_")
  418.         replace_all(nm, 31, "{", "_")
  419.         replace_all(nm, 31, "}", "_")
  420.         replace_all(nm, 31, "~", "_")
  421.         replace_all(nm, 31, ":", "_")
  422.         replace_all(nm, 31, ".", "_")
  423.         replace_all(nm, 31, "<", "_")
  424.         replace_all(nm, 31, ">", "_")
  425.         replace_all(nm, 31, "|", "_")
  426.         formatex(file, charsmax(file), "addons/amxmodx/configs/deathrun/%s.ini", nm)
  427.         new file_pointer = fopen(file, "r")
  428.         if(!file_pointer)
  429.         {
  430.             write_file(file, "0 0 0 0 0 0 0 0 0")
  431.             return PLUGIN_HANDLED
  432.         }
  433.         fclose(file_pointer)
  434.         new lines = file_size(file, 1)
  435.         new a1[32], a2[32], a3[32], a4[32], a5[32], a6[32], a7[32], a8[32]
  436.         if(lines > 0)
  437.         {
  438.             new buff[512], len
  439.             read_file(file, lines=0, buff, charsmax(buff), len)
  440.             parse(buff, a1, 31, a2, 31, a3, 31, a4, 31, a5, 31, a6, 31, a7, 31, a8, 31)
  441.             Szint[id] = str_to_num(a1)
  442.             Xp[id] = str_to_num(a2)
  443.             Pont[id] = str_to_num(a3)
  444.             Olesek[id] = str_to_num(a4)
  445.             Elet[id] = str_to_num(a5)
  446.             knife[id] = str_to_num(a6)
  447.             kivalasztottUSP[id] = str_to_num(a7)
  448.            
  449.             for(new i=0; i <= MAX-1; i++)
  450.             {
  451.                 pistol[i][id] = str_to_num(a8)
  452.             }
  453.            
  454.            
  455.         }
  456.     }
  457.     return PLUGIN_HANDLED
  458. }
  459.  
  460. stock print_color(const id, const input[], any:...)
  461. {
  462.     new count = 1, players[32]
  463.     static msg[2048]
  464.     vformat(msg, 2047, input, 3)
  465.    
  466.     replace_all(msg, 190, "!g", "^4")
  467.     replace_all(msg, 190, "!y", "^1")
  468.     replace_all(msg, 190, "!t", "^3")
  469.    
  470.    
  471.     if (id) players[0] = id; else get_players(players, count, "ch")
  472.     {
  473.     for (new i = 0; i < count; i++)
  474.     {
  475.         if (is_user_connected(players[i]))
  476.         {
  477.             message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  478.             write_byte(players[i])
  479.             write_string(msg)
  480.             message_end()
  481.         }
  482.     }
  483. }
  484.     return PLUGIN_HANDLED
  485. }



txt:

English fordítása: ( [profil]pixxa112[/profil] )

► Spoiler mutatása


És szívesen hallgatok profibbaktól építő jellegű kritikát, sőt annak még örülnék is!:)

_________________
 ! Moderátori megjegyzés (kiki):
Kérlek csekkold az aláírásra vonatkozó szabályokat!


A hozzászólást 8 alkalommal szerkesztették, utoljára The Peace 2017.01.27. 16:27-kor.

Ők köszönték meg The Peace nek ezt a hozzászólást: FonoK (2017.01.27. 12:59)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Befejezettlen DeathRun menü.
HozzászólásElküldve:2017.01.16. 12:35 
Offline
Fórum Moderátor
Avatar

Csatlakozott:2014.05.01. 13:18
Hozzászólások:628
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 105 alkalommal
Negatívum, hogy sok helyen nem használod az 'else' kifejezést. Ami miatt lehetne akár kevésbé terhelő is.
Továbbá a 8. 9. 0. menüpontokat nem tetted többnyelvűvé és feltűnt, hogy a [hu] és [en] tagok alatt is magyar fordítás található.

A többdimenziós tömböket én is jobban szeretem, de ha már használod, akkor miért nem egybe raksz mindent? Az összes érék a fegyver tulajdonságaira gyakorol hatást, emiatt nem is tartom szükségesnek külön venni az értékeket, mint sebesség, vagy a gravitáció.

A jelenlegi fegyver lekérdezés meg ezen a módon szerintem nem túl kifizetődő. Ha az fegyver elővételt Hook-olnád, akkor kímélőbb lenne.

Ők köszönték meg JohanCorn nek ezt a hozzászólást: FonoK (2017.01.27. 12:59)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Befejezettlen DeathRun menü.
HozzászólásElküldve:2017.01.16. 15:03 
Offline
Félisten
Avatar

Csatlakozott:2016.03.06. 14:20
Hozzászólások:976
Megköszönt másnak: 113 alkalommal
Megköszönték neki: 137 alkalommal
JohanCorn írta:
Negatívum, hogy sok helyen nem használod az 'else' kifejezést. Ami miatt lehetne akár kevésbé terhelő is.
Továbbá a 8. 9. 0. menüpontokat nem tetted többnyelvűvé és feltűnt, hogy a [hu] és [en] tagok alatt is magyar fordítás található.

A többdimenziós tömböket én is jobban szeretem, de ha már használod, akkor miért nem egybe raksz mindent? Az összes érék a fegyver tulajdonságaira gyakorol hatást, emiatt nem is tartom szükségesnek külön venni az értékeket, mint sebesség, vagy a gravitáció.

A jelenlegi fegyver lekérdezés meg ezen a módon szerintem nem túl kifizetődő. Ha az fegyver elővételt Hook-olnád, akkor kímélőbb lenne.


Naaa, ezt már szeretem, erre vártam igazából.


'else'-ről:

Jelenlegi:
  1. if(pistol[item][id] == 0){
  2.         if(Pont[id] >= Points[item])
  3.         {
  4.             print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "SIKERES")
  5.             pistol[item][id]++;
  6.             Pont[id] -= Points[item]
  7.             MyUsp(id)
  8.         }
  9.         else print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "KEVESPONT")
  10.     }



És ahogy te szeretnéd? (ahogy nem annyira terhelő?)

  1. if(pistol[item][id] == 0){
  2.         if(Pont[id] >= Points[item])
  3.         {
  4.             print_color(id, "!g[DeathRun]!y %L",LANG_PLAYER, "SIKERES")
  5.             pistol[item][id]++;
  6.             Pont[id] -= Points[item]
  7.             MyUsp(id)
  8.     }


8.9.0 menüpont:

  1. menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  2.     menu_setprop(menu, MPROP_NEXTNAME, "Következo");
  3.     menu_setprop(menu, MPROP_EXITNAME, "KilĂ©pĂ©s");


Ahogy te akarod:

Igazam van?
  1. menu_setprop(menu, MPROP_BACKNAME, LANG_PLAYER, "VISSZA");
  2. menu_setprop(menu, MPROP_NEXTNAME, LANG_PLAYER, "KOVETKEZO");
  3. menu_setprop(menu, MPROP_EXITNAME, LANG_PLAYER, "KILEP");


1 pár szó a fordításról:

Igazából a címbe is kiszemelhető ez hogy "befejezettlen menü" és ezálltal arra a részre még nem tértem, de ha valaki unatkozik ,az lefordíthatja Angol-ra és kirakom úgy.



"A többdimenziós tömböket én is jobban szeretem, de ha már használod, akkor miért nem egybe raksz mindent? Az összes érék a fegyver tulajdonságaira gyakorol hatást, emiatt nem is tartom szükségesnek külön venni az értékeket, mint sebesség, vagy a gravitáció."

- Most megfogtál, mert ezt nem igazán értem ,hogy hogyan szeretnéd!


"Fegyver Hook"

- Most bele néztem az egyik forrásodba, és látom van 1 ilyen "hook"-olás

*Idézve*
  1. public weapon_hook(id)
  2. {
  3.     engclient_cmd(id, "weapon_awp");
  4.  
  5.     return PLUGIN_HANDLED;
  6. }


de viszont ennek nem lenne jelentős része, hisz ha felrakod magát a DR módot (mert ez csak menü), akkor minden rendben lesz! :D

#Köszönöm a választ!

_________________
 ! Moderátori megjegyzés (kiki):
Kérlek csekkold az aláírásra vonatkozó szabályokat!

Ők köszönték meg The Peace nek ezt a hozzászólást: FonoK (2017.01.27. 12:59)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Befejezettlen DeathRun menü.
HozzászólásElküldve:2017.01.16. 16:18 
Offline
Fórum Moderátor
Avatar

Csatlakozott:2014.05.01. 13:18
Hozzászólások:628
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 105 alkalommal
Az else ágazást igazából a 125. sorra gondoltam első körben és nem a fent említettre.

A 8.9.0. pontokra is format, vagy formatex funkciókkal hasonlóképpen mint minden nyelves sorodban.

A Hook-ot nem így értettem, hanem már meglévő eseménnyel összekapcsolásra, a kifejezést egy angol fórumon találtam, de akkor bizonyára ide nem passzol. Konkrétan azért írtam, mert CurWpn-el az elővételt és lövést is ellenőrzöl, ami viszont elég felesleges, mert a kinézetet elővételkor elég ha ráteszed (deploy) funkció. Azt hiszem Hamsandwich-ben Item_Deploy néven keress rá.

A több dimenzióra pedig egy példát mutatok.
  1. new const Knives[][][]
  2. {
  3. // { "Kés Neve Str.", "Információ Str.", "Szint Str., vagy Num.", "Model Str.", "Sebesség Str.", "Gravitáció Str." },
  4. { "Arany", "0.5 Gravity", "10", "models/v_knife_gold.mdl", "230.0", "0.5" }
  5. }


Magyarázat, ami szükséges. Tudomásom szerint egy tömb csak egyféle elemet tartalmazhat (Num, Str, Float), bár (Num és Str) is megvalósítható szerintem, de Float mással nem. Erre megoldás, ha mindent Str ként írsz bele és ahol kiolvasd és szükséges használod a következő funkciókat.

  1. str_to_num(...)
  2. str_to_float(...)

Ők köszönték meg JohanCorn nek ezt a hozzászólást: FonoK (2017.01.27. 12:59)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Befejezettlen DeathRun menü.
HozzászólásElküldve:2017.01.16. 16:41 
Offline
SM Fejlesztő
Avatar

Csatlakozott:2012.10.18. 15:58
Hozzászólások:2486
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 132 alkalommal
Off Topic
befejezettlen -> befejezetlen

_________________
www.akosvagyok.hu

Ők köszönték meg Maxi nek ezt a hozzászólást: FonoK (2017.01.27. 12:59)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Befejezetlen DeathRun menü.
HozzászólásElküldve:2017.01.16. 20:17 
Offline
Tiszteletbeli
Avatar

Csatlakozott:2014.09.08. 22:21
Hozzászólások:3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>

ebből csinálj 2-t

_________________
GitHub - mforce

Ők köszönték meg mforce nek ezt a hozzászólást: FonoK (2017.01.27. 12:59)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Befejezettlen DeathRun menü.
HozzászólásElküldve:2017.01.16. 20:45 
Offline
Félisten
Avatar

Csatlakozott:2016.03.06. 14:20
Hozzászólások:976
Megköszönt másnak: 113 alkalommal
Megköszönték neki: 137 alkalommal
JohanCorn írta:
Az else ágazást igazából a 125. sorra gondoltam első körben és nem a fent említettre.

A 8.9.0. pontokra is format, vagy formatex funkciókkal hasonlóképpen mint minden nyelves sorodban.

A Hook-ot nem így értettem, hanem már meglévő eseménnyel összekapcsolásra, a kifejezést egy angol fórumon találtam, de akkor bizonyára ide nem passzol. Konkrétan azért írtam, mert CurWpn-el az elővételt és lövést is ellenőrzöl, ami viszont elég felesleges, mert a kinézetet elővételkor elég ha ráteszed (deploy) funkció. Azt hiszem Hamsandwich-ben Item_Deploy néven keress rá.

A több dimenzióra pedig egy példát mutatok.
  1. new const Knives[][][]
  2. {
  3. // { "Kés Neve Str.", "Információ Str.", "Szint Str., vagy Num.", "Model Str.", "Sebesség Str.", "Gravitáció Str." },
  4. { "Arany", "0.5 Gravity", "10", "models/v_knife_gold.mdl", "230.0", "0.5" }
  5. }


Magyarázat, ami szükséges. Tudomásom szerint egy tömb csak egyféle elemet tartalmazhat (Num, Str, Float), bár (Num és Str) is megvalósítható szerintem, de Float mással nem. Erre megoldás, ha mindent Str ként írsz bele és ahol kiolvasd és szükséges használod a következő funkciókat.

  1. str_to_num(...)
  2. str_to_float(...)


Értem JohanCorn , és köszönöm szépen, ezt magamnak így felhasználom :)...

Mforce - miért kellene kettő?

_________________
 ! Moderátori megjegyzés (kiki):
Kérlek csekkold az aláírásra vonatkozó szabályokat!

Ők köszönték meg The Peace nek ezt a hozzászólást: FonoK (2017.01.27. 13:00)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Befejezetlen DeathRun menü.
HozzászólásElküldve:2017.01.27. 11:11 
Offline
Őskövület
Avatar

Csatlakozott:2011.12.28. 00:35
Hozzászólások:2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
Tessék így már csinálhatod magadnak angolul :D

  1. [en]
  2. FOMENUCIM = \wDeathRun Menu \r Level:\d %d | \r XP: \d %d%% | \rPoint: \d %d
  3. FOMENU1 = Knife
  4. FOMENU2 = USP
  5. FOMENU3 = Shop
  6. FOMENU4 = Information
  7.  
  8. BOLT0 = Book  \r(+1 level)  \d 120 Point
  9. BOLT1 = Regeneration \r(+25HP)  \d 24 Point
  10. BOLT2 = Development \r(+25AP) \d19 Point
  11. BOLT3 = Respawn \r(+1 life) \d 6 Point
  12.  
  13. KAPOTTPONT = +%d Points
  14. KEVESPONT = Sorry, not enough points.
  15. SIKERES = Successful purchases.
  16. KEVESSZINT = Sorry, not enough level.
  17. UJRAELEDTEL = Successful revived.
  18. ELET =  !t%d!y Your life is.

_________________
****

Ők köszönték meg pixxa112 nek ezt a hozzászólást (összesen 2):FonoK (2017.01.27. 13:00) • The Peace (2017.01.27. 16:27)
  Népszerűség: 4.55%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Befejezetlen DeathRun menü.
HozzászólásElküldve:2017.01.27. 16:27 
Offline
Félisten
Avatar

Csatlakozott:2016.03.06. 14:20
Hozzászólások:976
Megköszönt másnak: 113 alkalommal
Megköszönték neki: 137 alkalommal
Köszönet a többiek nevében is :DD

_________________
 ! Moderátori megjegyzés (kiki):
Kérlek csekkold az aláírásra vonatkozó szabályokat!

Ők köszönték meg The Peace nek ezt a hozzászólást: FonoK (2017.01.27. 19:43)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája:
HozzászólásElküldve:2025.01.11. 01:20 
Offline
Senior Tag
Avatar

Csatlakozott:2017.08.09. 17:01
Hozzászólások:269
Megköszönt másnak: 62 alkalommal
Megköszönték neki: 73 alkalommal
Egy kicsit módosítva, tisztelegve a StunT előtt, ami nekem is sok örömöt okozott, és remélem a jövőben mégtöbbet fog, ha nem is te csinálod, de sajnos az esély nagyon kevés rá, mivel kiment az easy DR a divatból, ahogy a cs 1.6is :cry:

DE kicsit módosítottam, hozzáteszem nem teszteltem, de szépen lefordult, vállalom a felelőséget azért, ha nem megy, segítek ott ahol tudok, és ahogyan tudok.

AMX Mod X Compiler 1.9.0.5294
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2013 AMX Mod X Team

Header size: 2100 bytes
Code size: 17004 bytes
Data size: 27944 bytes
Stack/heap size: 16384 bytes
Total requirements: 63432 bytes
Done.


  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fun>
  4. #include <hamsandwich>
  5. #include <cstrike>
  6. #include <fakemeta>
  7. #include <engine>
  8. #include <sqlx>
  9.  
  10. #define MAX_USP 9
  11. #define MIN_POINTS 1
  12. #define MAX_POINTS 3
  13. #define PREFIX "DeathRun"
  14. #define MAX_LEVEL 500
  15. #define SHOP_OPTION_COUNT 4
  16.  
  17. new g_Level[33];
  18. new g_XP[33];
  19. new g_Points[33], g_Kills[33], g_Lives[33];
  20. new g_Knife[33];
  21.  
  22. new Handle:g_SqlHandle;
  23.  
  24. new const g_Knives[][][] = {
  25.     { "Default Knife", "\rAcquired", "models/v_knife.mdl" },
  26.     { "Speed Knife | \d(+5% Speed)", "\r5.Level", "models/st_deathrun/kes/v_gyors.mdl" },
  27.     { "Gravity Knife |\d(-20% Gravity)", "\r10.Level", "models/st_deathrun/kes/v_gravi.mdl" },
  28.     { "Dashing Knife |\d(+15% Speed)", "\r15.Level", "models/st_deathrun/kes/v_szaguldo_v2.mdl" },
  29.     { "Damage Knife |\r\d(+30% Damage)", "\r20.Level", "models/st_deathrun/kes/v_sebzes.mdl" },
  30.     { "Flame Knife | \d(+10% Damage)", "\r25.Level", "models/st_deathrun/kes/v_flame.mdl" },
  31.     { "Shadow Knife | \d(+10% Speed)", "\r30.Level", "models/st_deathrun/kes/v_shadow.mdl" },
  32.     { "Ice Knife | \d(+10% Damage)", "\r35.Level", "models/st_deathrun/kes/v_ice.mdl" },
  33.     { "Thunder Knife | \d(+10% Speed)", "\r40.Level", "models/st_deathrun/kes/v_thunder.mdl" },
  34.     { "Venom Knife | \d(+10% Damage)", "\r45.Level", "models/st_deathrun/kes/v_venom.mdl" },
  35. };
  36.  
  37. new const g_Levels[] = {0, 5, 10, 15, 20};
  38. new const Float:g_Speed[] = {250.0, 260.0, 250.0, 280.0, 250.0, 375.0, 375.0, 375.0, 375.0, 375.0};
  39. new const Float:g_Gravity[] = {1.0, 1.0, 0.84, 1.0, 1.0, 1.26, 1.26, 1.26, 1.26, 1.26};
  40. new const Float:g_Damage[] = {1.0, 1.2, 1.3, 1.5, 1.6, 2.6, 2.6, 2.6, 2.6};
  41. new g_SelectedUSP[33];
  42.  
  43. new const g_ShopPoints[SHOP_OPTION_COUNT] = {120, 24, 19, 6};
  44. new const g_RequiredLevels[SHOP_OPTION_COUNT] = {15, 0, 0, 0};
  45.  
  46. new const g_USPs[][][] = {
  47.     { "Standard USP", "", "models/v_usp.mdl" },
  48.     { "Spitfire USP | ^1(+1.2x DMG)", "250 Points", "models/st_deathrun/usp/v_spitfire.mdl" },
  49.     { "Fire USP | ^1(+1.3x DMG)", "350 Points", "models/st_deathrun/usp/v_tuz.mdl" },
  50.     { "Camouflage USP | ^1(+1.5x DMG)", "750 Points", "models/st_deathrun/usp/v_terepmintas.mdl" },
  51.     { "Silver USP | ^1(+1.6x DMG)", "1250 Points", "models/st_deathrun/usp/v_ezust.mdl" },
  52.     { "Golden USP | ^1(+2.6x DMG)", "2000 Points", "models/st_deathrun/usp/v_golden.mdl" },
  53.     { "Dragon USP | ^1(+2.6x DMG)", "2500 Points", "models/st_deathrun/usp/v_dragon.mdl" },
  54.     { "Viper USP | ^1(+2.6x DMG)", "3000 Points", "models/st_deathrun/usp/v_viper.mdl" },
  55.     { "Ice USP | ^1(+2.6x DMG)", "3500 Points", "models/st_deathrun/usp/v_ice.mdl" }
  56. };
  57.  
  58. new const g_PointsCost[] = {0, 250, 350, 750, 1250, 2000, 2500, 3000, 3500};
  59. new g_Pistol[sizeof(g_USPs)][33];
  60.  
  61. new g_XPThresholds[MAX_LEVEL + 1];
  62.  
  63. public init_xp_thresholds() {
  64.     for (new i = 0; i <= MAX_LEVEL; i++) {
  65.         g_XPThresholds[i] = i * i * 100;
  66.     }
  67. }
  68.  
  69. public plugin_init() {
  70.     register_plugin("DeathRun Menu", "1.0", "s[T]* Levii");
  71.     g_SqlHandle = SQL_MakeDbTuple("", "", "", "");
  72.     SQL_CheckTable();
  73.     register_clcmd("chooseteam", "Mymenu");
  74.     register_clcmd("say /menu", "Mymenu");
  75.     RegisterHam(Ham_Item_Deploy, "weapon_knife", "Fegyvervaltas", 1);
  76.     RegisterHam(Ham_Item_Deploy, "weapon_usp", "Fegyvervaltas", 1);
  77.     RegisterHam(Ham_TakeDamage, "player", "damagetake");
  78.     register_dictionary("deathrunmenu.txt");
  79.     init_xp_thresholds();
  80. }
  81.  
  82. public client_death(Killer, Victim) {
  83.     if (Killer == Victim) return PLUGIN_HANDLED;
  84.     g_Kills[Killer]++;
  85.     new pPoints = random_num(MIN_POINTS, MAX_POINTS);
  86.     g_Points[Killer] += pPoints;
  87.  
  88.     set_hudmessage(255, 255, 255, -1.0, 0.15, 0, 6.0, 2.0);
  89.     show_hudmessage(Killer, "%L", LANG_PLAYER, "GOTPOINT", pPoints);
  90.  
  91.     new experience = random_num(20, 100);
  92.     g_XP[Killer] += experience;
  93.  
  94.     while (g_Level[Killer] < MAX_LEVEL && g_XP[Killer] >= g_XPThresholds[g_Level[Killer]]) {
  95.         g_XP[Killer] -= g_XPThresholds[g_Level[Killer]];
  96.         g_Level[Killer]++;
  97.         client_print_color(Killer, print_team_default, "^4[DeathRun]^1 %L", LANG_PLAYER, "LEVEL_UP", g_Level[Killer]);
  98.     }
  99.  
  100.     return PLUGIN_CONTINUE;
  101. }
  102.  
  103. public Mymenu(id) {
  104.     static String[512], Row[4];
  105.     formatex(String, charsmax(String), "%L", LANG_PLAYER, "MENU_TITLE", g_Level[id], g_XP[id], g_Points[id]);
  106.     new menu = menu_create(String, "my_handler");
  107.  
  108.     for (new i = 1; i <= 4; i++) {
  109.         formatex(String, charsmax(String), "%L", LANG_PLAYER, "MENU_OPTION_%d", i);
  110.         num_to_str(i, Row, charsmax(Row));
  111.         menu_additem(menu, String, Row, 0);
  112.     }
  113.  
  114.     menu_display(id, menu, 0);
  115. }
  116.  
  117. public my_handler(id, menu, item) {
  118.     if (item == MENU_EXIT) {
  119.         menu_destroy(menu);
  120.         return;
  121.     }
  122.     new data[9], name[64], Button;
  123.     new access, callback;
  124.     menu_item_getinfo(menu, item, access, data, charsmax(data), name, charsmax(name), callback);
  125.     Button = str_to_num(data);
  126.  
  127.     switch (Button) {
  128.         case 1: MyKnife(id);
  129.         case 2: MyUsp(id);
  130.         case 3: MyShop(id);
  131.         case 4: MyInformation(id);
  132.     }
  133. }
  134.  
  135. public MyShop(id) {
  136.     static String[512], Row[4];
  137.     formatex(String, charsmax(String), "%L", LANG_PLAYER, "MENU_TITLE", g_Level[id], g_XP[id], g_Points[id]);
  138.     new menu = menu_create(String, "myshop_handler");
  139.  
  140.     for (new i = 0; i < SHOP_OPTION_COUNT; i++) {
  141.         formatex(String, charsmax(String), "%L", LANG_PLAYER, "SHOP_OPTION_%d", i);
  142.         num_to_str(i, Row, charsmax(Row));
  143.         menu_additem(menu, String, Row, 0);
  144.     }
  145.  
  146.     menu_display(id, menu, 0);
  147. }
  148.  
  149. public myshop_handler(id, menu, item) {
  150.     if (item == MENU_EXIT) {
  151.         menu_destroy(menu);
  152.         return;
  153.     }
  154.     new data[9], name[64], Button;
  155.     new access, callback;
  156.     menu_item_getinfo(menu, item, access, data, charsmax(data), name, charsmax(name), callback);
  157.     Button = str_to_num(data);
  158.  
  159.     if (g_Points[id] >= g_ShopPoints[Button]) {
  160.         if (g_Level[id] < g_RequiredLevels[Button]) {
  161.             client_print_color(id, print_team_default, "^4[DeathRun]^1 %L", LANG_PLAYER, "INSUFFICIENT_LEVEL");
  162.             return;
  163.         }
  164.  
  165.         switch (Button) {
  166.             case 0: UpgradeLevel(id);
  167.             case 1: IncreaseHealth(id);
  168.             case 2: IncreaseArmor(id);
  169.             case 3: AddLife(id);
  170.         }
  171.     } else {
  172.         client_print_color(id, print_team_default, "^4[DeathRun]^1 %L", LANG_PLAYER, "INSUFFICIENT_POINTS");
  173.     }
  174. }
  175.  
  176. public UpgradeLevel(id) {
  177.     g_Level[id]++;
  178.     g_Points[id] -= g_ShopPoints[0];
  179.     client_print_color(id, print_team_default, "^4[DeathRun]^1 %L", LANG_PLAYER, "SUCCESS");
  180. }
  181.  
  182. public IncreaseHealth(id) {
  183.     g_Points[id] -= g_ShopPoints[1];
  184.     set_user_health(id, get_user_health(id) + 25);
  185.     client_print_color(id, print_team_default, "^4[DeathRun]^1 %L", LANG_PLAYER, "SUCCESS");
  186. }
  187.  
  188. public IncreaseArmor(id) {
  189.     g_Points[id] -= g_ShopPoints[2];
  190.     set_user_armor(id, get_user_armor(id) + 25);
  191.     client_print_color(id, print_team_default, "^4[DeathRun]^1 %L", LANG_PLAYER, "SUCCESS");
  192. }
  193.  
  194. public AddLife(id) {
  195.     g_Lives[id]++;
  196.     g_Points[id] -= g_ShopPoints[3];
  197.     client_print_color(id, print_team_default, "^4[DeathRun]^1 %L", LANG_PLAYER, "SUCCESS");
  198. }
  199.  
  200. public MyKnife(id) {
  201.     new txt[128];
  202.     static String[512];
  203.     formatex(String, charsmax(String), "%L", LANG_PLAYER, "KNIFE_TITLE", g_Level[id], g_XP[id], g_Points[id]);
  204.     new menu = menu_create(String, "myknife_handler");
  205.  
  206.     for (new i = 0; i < sizeof(g_Knives); i++) {
  207.         formatex(txt, charsmax(txt), "%s%s \d%s", g_Knife[id] == i ? "^4" : "^3", g_Knives[i][0], g_Level[id] >= g_Levels[i] ? "^1[Level Reached]" : g_Knives[i][1]);
  208.         menu_additem(menu, txt, "", 0);
  209.     }
  210.  
  211.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  212.     menu_setprop(menu, MPROP_BACKNAME, "Back");
  213.     menu_setprop(menu, MPROP_NEXTNAME, "Next");
  214.     menu_setprop(menu, MPROP_EXITNAME, "Exit");
  215.  
  216.     menu_display(id, menu, 0);
  217. }
  218.  
  219. public myknife_handler(id, menu, item) {
  220.     if (item == MENU_EXIT) {
  221.         menu_destroy(menu);
  222.         return PLUGIN_HANDLED;
  223.     }
  224.     if (g_Level[id] >= g_Levels[item]) {
  225.         g_Knife[id] = item;
  226.         client_print_color(id, print_team_default, "^4[DeathRun]^1 %L", LANG_PLAYER, "SUCCESS");
  227.         MyKnife(id);
  228.     } else {
  229.         client_print_color(id, print_team_default, "^4[DeathRun]^1 %L", LANG_PLAYER, "INSUFFICIENT_LEVEL");
  230.         MyKnife(id);
  231.     }
  232.     menu_destroy(menu);
  233.     return PLUGIN_HANDLED;
  234. }
  235.  
  236. public MyUsp(id) {
  237.     new txt[128];
  238.     static String[512];
  239.     formatex(String, charsmax(String), "%L", LANG_PLAYER, "USP_TITLE", g_Level[id], g_XP[id], g_Points[id]);
  240.     new menu = menu_create(String, "myusp_handler");
  241.  
  242.     for (new i = 0; i < sizeof(g_USPs); i++) {
  243.         formatex(txt, charsmax(txt), "%s%s \r%s", g_SelectedUSP[id] == i ? "^1" : "^3", g_USPs[i][0], g_Pistol[i][id] >= 1 ? "^1[Acquired]" : g_USPs[i][1]);
  244.         menu_additem(menu, txt, "", 0);
  245.     }
  246.  
  247.     menu_setprop(menu, MPROP_BACKNAME, "Back");
  248.     menu_setprop(menu, MPROP_NEXTNAME, "Next");
  249.     menu_setprop(menu, MPROP_EXITNAME, "Exit");
  250.  
  251.     menu_display(id, menu, 0);
  252. }
  253.  
  254. public myusp_handler(id, menu, item) {
  255.     if (item == MENU_EXIT) {
  256.         menu_destroy(menu);
  257.         return PLUGIN_HANDLED;
  258.     }
  259.     if (g_Pistol[item][id] == 0) {
  260.         if (g_Points[id] >= g_PointsCost[item]) {
  261.             client_print_color(id, print_team_default, "^4[DeathRun]^1 %L", LANG_PLAYER, "SUCCESS");
  262.             g_Pistol[item][id]++;
  263.             g_Points[id] -= g_PointsCost[item];
  264.             MyUsp(id);
  265.         } else {
  266.             client_print_color(id, print_team_default, "^4[DeathRun]^1 %L", LANG_PLAYER, "INSUFFICIENT_POINTS");
  267.         }
  268.     } else {
  269.         g_SelectedUSP[id] = item;
  270.         client_print_color(id, print_team_default, "^4[DeathRun]^1 %L", LANG_PLAYER, "SUCCESS");
  271.         MyUsp(id);
  272.     }
  273.     menu_destroy(menu);
  274.     return PLUGIN_HANDLED;
  275. }
  276.  
  277. public MyInformation(id) {
  278.     new szMenuName[512];
  279.     formatex(szMenuName, sizeof(szMenuName) - 1, "%L", LANG_PLAYER, "MENU_INFO", g_Level[id], g_XP[id], g_Points[id]);
  280.     show_menu(id, (1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) | (1 << 4) | (1 << 5) | (1 << 6) | (1 << 7) | (1 << 8) | (1 << 9), szMenuName, -1, "MyInformation_handler");
  281. }
  282.  
  283. public MyInformation_handler(id, iKey) {
  284.     switch (iKey) {
  285.         case 0: {
  286.             MyInformation(id);
  287.         }
  288.         case 1..9: return;
  289.     }
  290. }
  291.  
  292. public damagetake(victim, inflictor, attacker, Float:damage) {
  293.     if (is_user_alive(attacker) && is_user_alive(victim)) {
  294.         if (get_user_weapon(attacker) == CSW_KNIFE && g_Knife[attacker] == 4)
  295.             SetHamParamFloat(4, damage * 1.3);
  296.         if (get_user_weapon(attacker) == CSW_USP)
  297.             SetHamParamFloat(4, damage * g_Damage[g_SelectedUSP[attacker]]);
  298.     }
  299. }
  300.  
  301. public Fegyvervaltas(iEnt) {
  302.     new id = get_pdata_cbase(iEnt, 41, 4);
  303.    
  304.     if (!is_user_alive(id) || !is_user_connected(id))
  305.         return HAM_IGNORED;
  306.  
  307.     new Weapon = cs_get_weapon_id(iEnt);
  308.    
  309.     switch (Weapon) {
  310.         case CSW_KNIFE: {
  311.             if (g_Knife[id] == -1)
  312.                 return HAM_IGNORED;
  313.             else {
  314.                 entity_set_string(id, EV_SZ_viewmodel, g_Knives[g_Knife[id]][2]);
  315.                 set_user_gravity(id, g_Gravity[g_Knife[id]]);
  316.                 set_user_maxspeed(id, g_Speed[g_Knife[id]]);
  317.             }
  318.         }
  319.         case CSW_USP: {
  320.             if (g_SelectedUSP[id] == -1)
  321.                 return HAM_IGNORED;
  322.             else {
  323.                 entity_set_string(id, EV_SZ_viewmodel, g_USPs[g_SelectedUSP[id]][2]);
  324.                 set_user_maxspeed(id, 250.0);
  325.                 set_user_gravity(id, 1.0);
  326.             }
  327.         }
  328.     }
  329.     return HAM_SUPERCEDE;
  330. }
  331.  
  332. public plugin_precache() {
  333.     for (new i = 0; i < sizeof(g_Knives); i++) {
  334.         precache_model(g_Knives[i][2]);
  335.     }
  336.     for (new i = 0; i < sizeof(g_USPs); i++) {
  337.         precache_model(g_USPs[i][2]);
  338.     }
  339. }
  340.  
  341. public Respawn(id) {
  342.     if (!is_user_alive(id) && g_Lives[id] >= 1) {
  343.         ExecuteHam(Ham_CS_RoundRespawn, id);
  344.         g_Lives[id]--;
  345.         client_print_color(id, print_team_default, "^4[DeathRun]^1 %L", LANG_PLAYER, "RESPAWN_SUCCESS");
  346.     }
  347. }
  348.  
  349. public ShowLives(id) {
  350.     client_print_color(id, print_team_default, "^4[DeathRun]^1 %L ", g_Lives[id], LANG_PLAYER, "LIFE_COUNT");
  351. }
  352.  
  353. public SQL_CheckTable() {
  354.     if (!g_SqlHandle) {
  355.         client_print(0, print_chat, "SQL handle is not initialized!");
  356.         return;
  357.     }
  358.  
  359.     static Query[256];
  360.     new Len = 0;
  361.  
  362.     Len += formatex(Query[Len], charsmax(Query),
  363.         "CREATE TABLE IF NOT EXISTS player_data (");
  364.     Len += formatex(Query[Len], charsmax(Query)-Len,
  365.         "steamid VARCHAR(32) NOT NULL PRIMARY KEY, ");
  366.     Len += formatex(Query[Len], charsmax(Query)-Len,
  367.         "level INT NOT NULL DEFAULT 0, ");
  368.     Len += formatex(Query[Len], charsmax(Query)-Len,
  369.         "xp INT NOT NULL DEFAULT 0, ");
  370.     Len += formatex(Query[Len], charsmax(Query)-Len,
  371.         "points INT NOT NULL DEFAULT 0, ");
  372.     Len += formatex(Query[Len], charsmax(Query)-Len,
  373.         "kills INT NOT NULL DEFAULT 0, ");
  374.     Len += formatex(Query[Len], charsmax(Query)-Len,
  375.         "lives INT NOT NULL DEFAULT 0, ");
  376.     Len += formatex(Query[Len], charsmax(Query)-Len,
  377.         "knife INT NOT NULL DEFAULT 0);");
  378.  
  379.     SQL_ThreadQuery(g_SqlHandle, "createTableThread", Query);
  380. }
  381.  
  382. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  383.     if(FailState == TQUERY_CONNECT_FAILED)
  384.         set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
  385.     else if(FailState == TQUERY_QUERY_FAILED)
  386.         set_fail_state("Query Error");
  387.     if(Errcode)
  388.         log_amx("[HIBA*] HIBAT DOBTAM: %s", Error);
  389. }
  390.  
  391. stock LoadPlayerData(id) {
  392.     new steamid[32];
  393.     get_user_authid(id, steamid, charsmax(steamid));
  394.  
  395.     static Query[256];
  396.     new Len = 0;
  397.  
  398.     Len += formatex(Query[Len], charsmax(Query)-Len,
  399.         "SELECT level, xp, points, kills, lives, knife FROM player_data WHERE steamid = '%s';", steamid);
  400.  
  401.     new Data[1];
  402.     Data[0] = id;
  403.     SQL_ThreadQuery(g_SqlHandle, "QueryLoadData", Query, Data, 1);
  404. }
  405.  
  406. public QueryLoadData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  407.     if (FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  408.         log_amx("%s", Error);
  409.         return;
  410.     } else {
  411.         new id = Data[0];
  412.  
  413.         if (SQL_NumResults(Query)) {
  414.             g_Level[id] = SQL_ReadResult(Query, 0);
  415.             g_XP[id] = SQL_ReadResult(Query, 1);
  416.             g_Points[id] = SQL_ReadResult(Query, 2);
  417.             g_Kills[id] = SQL_ReadResult(Query, 3);
  418.             g_Lives[id] = SQL_ReadResult(Query, 4);
  419.             g_Knife[id] = SQL_ReadResult(Query, 5);
  420.  
  421.             client_print(id, print_chat, "Betöltött adatok: Szint: %d, XP: %d, Pontok: %d", g_Level[id], g_XP[id], g_Points[id]);
  422.         } else {
  423.             g_Level[id] = 0;
  424.             g_XP[id] = 0;
  425.             g_Points[id] = 0;
  426.             g_Kills[id] = 0;
  427.             g_Lives[id] = 0;
  428.             g_Knife[id] = 0;
  429.             SavePlayerData(id);
  430.         }
  431.     }
  432. }
  433.  
  434. public SavePlayerData(id) {
  435.     new steamid[32];
  436.     get_user_authid(id, steamid, charsmax(steamid));
  437.  
  438.     static Query[256];
  439.     new Len = 0;
  440.  
  441.     Len += formatex(Query[Len], charsmax(Query)-Len,
  442.         "INSERT INTO player_data (steamid, level, xp, points, kills, lives, knife) VALUES ('%s', %d, %d, %d, %d, %d, %d) ",
  443.         steamid, g_Level[id], g_XP[id], g_Points[id], g_Kills[id], g_Lives[id], g_Knife[id]);
  444.    
  445.     Len += formatex(Query[Len], charsmax(Query)-Len,
  446.         "ON DUPLICATE KEY UPDATE level = %d, xp = %d, points = points + %d, kills = %d, lives = %d, knife = %d;",
  447.         g_Level[id], g_XP[id], g_Points[id], g_Kills[id], g_Lives[id], g_Knife[id]);
  448.  
  449.     SQL_ThreadQuery(g_SqlHandle, "QuerySaveData", Query);
  450. }
  451.  
  452. public QuerySaveData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  453.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  454.         log_amx("%s", Error);
  455.         return;
  456.     }
  457. }
  458.  
  459. public client_putinserver(id){    
  460.     LoadPlayerData(id);
  461. }
  462.  
  463. public client_connect(id) {
  464.     g_Level[id] = 0;
  465.     g_XP[id] = 0;
  466.     g_Points[id] = 0;
  467.     g_Kills[id] = 0;
  468.     g_Lives[id] = 0;
  469.     g_Knife[id] = 0;
  470.     g_SelectedUSP[id] = 0;
  471.     for (new i = 0; i < MAX_USP; i++) {
  472.         g_Pistol[i][id] = 0;
  473.     }
  474. }
  475.  
  476. public client_disconnected(id) {
  477.     SavePlayerData(id);
  478. }



LANG
  1. [en]
  2. RESPAWN_SUCCESS "You have successfully respawned!"
  3. INSUFFICIENT_POINTS "You do not have enough points!"
  4. INSUFFICIENT_LEVEL "You do not have the required level!"
  5. SUCCESS "Action completed successfully!"
  6. MAX_LEVEL_REACHED "You have reached the maximum level!"
  7. LIFE_COUNT "Lives remaining: %d"
  8. LEVEL_UP "You have leveled up to %d!"
  9. GOTPOINT "You earned %d points!"
  10. KNIFE_TITLE "Knife Menu - Level: %d, XP: %d, Points: %d"
  11. USP_TITLE "USP Menu - Level: %d, XP: %d, Points: %d"
  12. MENU_INFO "\y| \dDeathRun Menu\y|^n^n^n\y| \rCreated by: \ds[T]* Levii\y| ^n \y| \rVersion: \d1.0 \y|"
  13.  
  14. [hu]
  15. RESPAWN_SUCCESS "Sikeresen újraéledtél!"
  16. INSUFFICIENT_POINTS "Nincsenek elég pontjaid!"
  17. INSUFFICIENT_LEVEL "Nincs meg a szükséges szinted!"
  18. SUCCESS "A művelet sikeresen befejeződött!"
  19. MAX_LEVEL_REACHED "Elérted a maximális szintet!"
  20. LIFE_COUNT "Megmaradt életek: %d"
  21. LEVEL_UP "Most a %d. szintre léptél!"
  22. GOTPOINT "Pontokat szereztél: %d!"
  23. KNIFE_TITLE "Kés menü - Szint: %d, XP: %d, Pontok: %d"
  24. USP_TITLE "USP menü - Szint: %d, XP: %d, Pontok: %d"
  25. MENU_INFO "\y| \dDeathRun Menü\y|^n^n^n\y| \rKészítette: \ds[T]* Levii\y| ^n \y| \rVerzió: \d1.0 \y|"
  26.  
  27. [ru]
  28. RESPAWN_SUCCESS "Вы успешно возродились!"
  29. INSUFFICIENT_POINTS "У вас недостаточно очков!"
  30. INSUFFICIENT_LEVEL "У вас недостаточный уровень!"
  31. SUCCESS "Действие выполнено успешно!"
  32. MAX_LEVEL_REACHED "Вы достигли максимального уровня!"
  33. LIFE_COUNT "Осталось жизней: %d"
  34. LEVEL_UP "Вы поднялись на уровень %d!"
  35. GOTPOINT "Вы заработали %d очков!"
  36. KNIFE_TITLE "Меню ножей - Уровень: %d, XP: %d, Очки: %d"
  37. USP_TITLE "Меню USP - Уровень: %d, XP: %d, Очки: %d"
  38. MENU_INFO "\y| \dМеню DeathRun\y|^n^n^n\y| \rСоздано: \ds[T]* Levii\y| ^n \y| \rВерсия: \d1.0 \y|"
  39.  
  40. [cz]
  41. RESPAWN_SUCCESS "Úspěšně jste se znovu objevili!"
  42. INSUFFICIENT_POINTS "Nemáte dostatek bodů!"
  43. INSUFFICIENT_LEVEL "Nemáte požadovanou úroveň!"
  44. SUCCESS "Akce byla úspěšně dokončena!"
  45. MAX_LEVEL_REACHED "Dosáhli jste maximální úrovně!"
  46. LIFE_COUNT "Zbývající životy: %d"
  47. LEVEL_UP "Zvýšili jste úroveň na %d!"
  48. GOTPOINT "Získali jste %d bodů!"
  49. KNIFE_TITLE "Menu nožů - Úroveň: %d, XP: %d, Body: %d"
  50. USP_TITLE "Menu USP - Úroveň: %d, XP: %d, Body: %d"
  51. MENU_INFO "\y| \dDeathRun Menu\y|^n^n^n\y| \rVytvořil: \ds[T]* Levii\y| ^n \y| \rVerze: \d1.0 \y|"
  52.  
  53. [sl]
  54. RESPAWN_SUCCESS "Úspešne ste sa znovu objavili!"
  55. INSUFFICIENT_POINTS "Nemáte dostatok bodov!"
  56. INSUFFICIENT_LEVEL "Nemáte požadovanú úroveň!"
  57. SUCCESS "Akcia bola úspešne dokončená!"
  58. MAX_LEVEL_REACHED "Dosiahli ste maximálnu úroveň!"
  59. LIFE_COUNT "Zostávajúce životy: %d"
  60. LEVEL_UP "Zvýšili ste úroveň na %d!"
  61. GOTPOINT "Získali ste %d bodov!"
  62. KNIFE_TITLE "Menu nožov - Úroveň: %d, XP: %d, Body: %d"
  63. USP_TITLE "Menu USP - Úroveň: %d, XP: %d, Body: %d"
  64. MENU_INFO "\y| \dDeathRun Menu\y|^n^n^n\y| \rVytvoril: \ds[T]* Levii\y| ^n \y| \rVerzia: \d1.0 \y|"


IMÁDTAM ezt a korszakot :lol:

_________________
"Szeretek aludni... mert az álmaim szebbek, mint a valóság."

Ők köszönték meg HellEnergY nek ezt a hozzászólást: The Peace (2025.01.11. 07:43)
  Népszerűség: 2.27%


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