hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.28. 21:01



Jelenlévő felhasználók

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

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Bing [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  [ 5 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Rang system
HozzászólásElküldve: 2021.02.02. 14:31 
Offline
Senior Tag
Avatar

Csatlakozott: 2021.01.08. 18:25
Hozzászólások: 273
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 20 alkalommal
Sziasztok.
Mi lehet a probléma?

Köszönöm Előre!

Kép

  1. #pragma semicolon 1
  2.  
  3. #include <amxmodx>
  4. #include <reapi>
  5. #include <nvault>
  6.  
  7. enum _:szRank {
  8.     Rank_Name,
  9.     Rank_MaxXp,
  10.     Rank_TxtSprFileName
  11. }
  12.  
  13. /* {"RankName", Maximum XP to level up, "txt_spr_name"} */
  14. new const szRankNames[][][] = {
  15.     {"Unranked", 20, ""},
  16.     {"Silver I", 20, "silver1"},
  17.     {"Silver II", 24, "silver2"},
  18.     {"Silver III", 28, "silver3"},
  19.     {"Silver IV", 32, "silver4"},
  20.     {"Silver Elite", 36, "silverelite"},
  21.     {"Silver Elite Master", 40, "silverelitemaster"},
  22.     {"Gold Nova I", 45, "goldnova1"},
  23.     {"Gold Nova II", 50, "goldnova2"},
  24.     {"Gold Nova III", 55, "goldnova3"},
  25.     {"Gold Nova Master", 60, "goldnovamaster"},
  26.     {"Master Guardian I", 66, "masterguardian1"},
  27.     {"Master Guardian II", 72, "masterguardian2"},
  28.     {"Master Guardian Elite", 78, "masterguardianelite"},
  29.     {"Distinguished Master Guardian", 86, "distinguishedmasterguardian"},
  30.     {"Legendary Eagle", 95, "legendaryeagle"},
  31.     {"Legendary Eagle Master", 105, "legendaryeaglemaster"},
  32.     {"Supreme Master First Class", 110, "suprememasterfirstclass"},
  33.     {"The Global Elite", 120, "theglobalelite"}
  34. };
  35.  
  36. new bool:g_PlayerRankedUp[MAX_CLIENTS + 1],
  37.     g_rank[MAX_CLIENTS + 1],
  38.     g_xp[MAX_CLIENTS + 1],
  39.     pCvars[6],
  40.     pMsgIds[4],
  41.     pForward[2],
  42.     hud_sync;
  43.  
  44. public plugin_init() {
  45.     register_plugin("Advanced Rank System", "0.0.2", "PurposeLess");
  46.  
  47.     register_event("CurWeapon", "@Event_CurWeapon", "be", "1=1");
  48.  
  49.     RegisterHookChain(RG_CBasePlayer_Killed, "@CBasePlayer_Killed", .post = true);
  50.  
  51.     if(get_member_game(m_bMapHasBombZone)) {
  52.         RegisterHookChain(RG_CGrenade_DefuseBombEnd, "@CGrenade_DefuseBombEnd", .post = true);
  53.         RegisterHookChain(RG_PlantBomb, "@PlantBomb", .post = true);
  54.     }
  55.  
  56.     bind_pcvar_num(create_cvar("ars_dead_xp", "-2"), pCvars[0]);
  57.     bind_pcvar_num(create_cvar("ars_kill_xp", "3"), pCvars[1]);
  58.     bind_pcvar_num(create_cvar("ars_kill_hp_xp", "2"), pCvars[2]);
  59.     bind_pcvar_num(create_cvar("ars_defuse_xp", "3"), pCvars[3]);
  60.     bind_pcvar_num(create_cvar("ars_plant_xp", "3"), pCvars[4]);
  61.     bind_pcvar_num(create_cvar("ars_spr_appear_time", "5"), pCvars[5]);
  62.  
  63.     pMsgIds[0] = get_user_msgid("WeaponList");
  64.     pMsgIds[1] = get_user_msgid("SetFOV");
  65.     pMsgIds[2] = get_user_msgid("CurWeapon");
  66.     pMsgIds[3] = get_user_msgid("HideWeapon");
  67.  
  68.     pForward[0] = CreateMultiForward("ars_rank_up", ET_IGNORE, FP_CELL);
  69.     pForward[1] = CreateMultiForward("ars_rank_down", ET_IGNORE, FP_CELL);
  70.  
  71.     hud_sync = CreateHudSyncObj();
  72. }
  73.  
  74. public plugin_precache() {
  75.     for(new i = 1; i < sizeof(szRankNames); i++) {
  76.         precache_generic(fmt("sprites/ars/%s.txt", szRankNames[i][Rank_TxtSprFileName][0]));
  77.         precache_generic(fmt("sprites/ars/%s.spr", szRankNames[i][Rank_TxtSprFileName][0]));
  78.     }
  79. }
  80.  
  81. public plugin_natives() {
  82.     register_native("ars_get_user_xp", "@ars_get_user_xp");
  83.     register_native("ars_get_user_rank", "@ars_get_user_rank");
  84.     register_native("ars_get_user_rankname", "@ars_get_user_rankname");
  85. }
  86.  
  87. @ars_get_user_xp() {
  88.     new pPlayer = get_param(1);
  89.  
  90.     return g_xp[pPlayer];
  91. }
  92.  
  93. @ars_get_user_rank() {
  94.     new pPlayer = get_param(1);
  95.  
  96.     return g_rank[pPlayer];
  97. }
  98.  
  99. @ars_get_user_rankname() {
  100.     new pPlayer = get_param(1);
  101.  
  102.     set_array(2, szRankNames[g_rank[pPlayer]][Rank_Name], get_param(3));
  103. }
  104.  
  105. public client_putinserver(pPlayer) {
  106.     if(is_user_bot(pPlayer)) {
  107.         return;
  108.     }
  109.  
  110.     set_task(1.0, "@ShowHudmessage", pPlayer, .flags = "b");
  111. }
  112.  
  113. @ShowHudmessage(const pPlayer) {
  114.     set_hudmessage(210, 105, 30, 0.01, 0.15, 0, _, 1.0, 0.1, 0.1);
  115.     ShowSyncHudMsg(pPlayer, hud_sync, "Rank: %s^nRank Xp: %i/%i", szRankNames[g_rank[pPlayer]][Rank_Name], g_xp[pPlayer], szRankNames[g_rank[pPlayer]][Rank_MaxXp]);
  116. }
  117.  
  118. @Event_CurWeapon(const pPlayer) {
  119.     if(!g_PlayerRankedUp[pPlayer] || get_member(pPlayer, m_iFOV) != 90) {
  120.         return;
  121.     }
  122.  
  123.     Show_Rank_Event(pPlayer);
  124. }
  125.  
  126. @CBasePlayer_Killed(const pVictim, pAttacker, iGib) {
  127.     if(pVictim == pAttacker || !is_user_connected(pAttacker)) {
  128.         return;
  129.     }
  130.  
  131.     g_xp[pVictim] += pCvars[0];
  132.     g_xp[pAttacker] += pCvars[1];
  133.  
  134.     if(get_member(pVictim, m_bHeadshotKilled)) {
  135.         g_xp[pAttacker] += pCvars[2];
  136.     }
  137.  
  138.     RankCheck(pAttacker);
  139.     RankCheck(pVictim);
  140. }
  141.  
  142. @CGrenade_DefuseBombEnd(const pBomb, const pPlayer, bool:bDefused) {
  143.     if(bDefused && pCvars[3]) {
  144.         g_xp[pPlayer] += pCvars[3];
  145.         RankCheck(pPlayer);
  146.     }
  147. }
  148.  
  149. @PlantBomb(const pPlayer, Float:vecStart[3], Float:vecVelocity[3]) {
  150.     if(pCvars[4]) {
  151.         g_xp[pPlayer] += pCvars[4];
  152.         RankCheck(pPlayer);
  153.     }
  154. }
  155.  
  156. const TASKID_ARS = 1337;
  157.  
  158. RankCheck(const pPlayer) {
  159.     if(g_xp[pPlayer] >= szRankNames[g_rank[pPlayer]][Rank_MaxXp][0]) {
  160.         if(g_rank[pPlayer] == sizeof(szRankNames) - 1) {
  161.             g_xp[pPlayer] = szRankNames[g_rank[pPlayer]][Rank_MaxXp][0];
  162.             return;
  163.         }
  164.         g_xp[pPlayer] -= szRankNames[g_rank[pPlayer]][Rank_MaxXp][0];
  165.         g_rank[pPlayer]++;
  166.         g_PlayerRankedUp[pPlayer] = true;
  167.         Show_Rank_Event(pPlayer);
  168.         remove_task(pPlayer + TASKID_ARS);
  169.         set_task(float(pCvars[5]), "@Clear_Rank_Event", pPlayer + TASKID_ARS);
  170.  
  171.         ExecuteForward(pForward[0], _, pPlayer);
  172.     }
  173.     else if(g_xp[pPlayer] <= 0) {
  174.         if(g_rank[pPlayer] < 2) {
  175.             g_xp[pPlayer] = 0;
  176.             return;
  177.         }
  178.  
  179.         g_rank[pPlayer]--;
  180.         g_xp[pPlayer] = szRankNames[g_rank[pPlayer]][Rank_MaxXp][0] - g_xp[pPlayer];
  181.         ExecuteForward(pForward[1], _, pPlayer);
  182.     }
  183. }
  184.  
  185. Show_Rank_Event(const pPlayer) {
  186.     new ammo, weapon = get_user_weapon(pPlayer, ammo);
  187.  
  188.     switch(weapon) {
  189.         case CSW_P228: SetMessage_WeaponList(pPlayer, 9, 52);
  190.         case CSW_HEGRENADE: SetMessage_WeaponList(pPlayer, 12, 1);
  191.         case CSW_XM1014: SetMessage_WeaponList(pPlayer, 5, 32);
  192.         case CSW_C4: SetMessage_WeaponList(pPlayer, 14, 1);
  193.         case CSW_MAC10: SetMessage_WeaponList(pPlayer, 6, 100);
  194.         case CSW_AUG: SetMessage_WeaponList(pPlayer, 4, 90);
  195.         case CSW_SMOKEGRENADE: SetMessage_WeaponList(pPlayer, 13, 1);
  196.         case CSW_ELITE: SetMessage_WeaponList(pPlayer, 10, 120);
  197.         case CSW_FIVESEVEN: SetMessage_WeaponList(pPlayer, 7, 100);
  198.         case CSW_UMP45: SetMessage_WeaponList(pPlayer, 6, 100);
  199.         case CSW_GALIL: SetMessage_WeaponList(pPlayer, 4, 90);
  200.         case CSW_FAMAS: SetMessage_WeaponList(pPlayer, 4, 90);
  201.         case CSW_USP: SetMessage_WeaponList(pPlayer, 6, 100);
  202.         case CSW_GLOCK18: SetMessage_WeaponList(pPlayer, 10, 120);
  203.         case CSW_MP5NAVY: SetMessage_WeaponList(pPlayer, 10, 120);
  204.         case CSW_M249: SetMessage_WeaponList(pPlayer, 3, 200);
  205.         case CSW_M3: SetMessage_WeaponList(pPlayer, 5, 32);
  206.         case CSW_M4A1: SetMessage_WeaponList(pPlayer, 4, 90);
  207.         case CSW_TMP: SetMessage_WeaponList(pPlayer, 10, 120);
  208.         case CSW_FLASHBANG: SetMessage_WeaponList(pPlayer, 11, 2);
  209.         case CSW_DEAGLE: SetMessage_WeaponList(pPlayer, 8, 35);
  210.         case CSW_SG552: SetMessage_WeaponList(pPlayer, 4, 90);
  211.         case CSW_AK47: SetMessage_WeaponList(pPlayer, 2, 90);
  212.         case CSW_KNIFE: SetMessage_WeaponList(pPlayer, -1, -1);
  213.         case CSW_P90: SetMessage_WeaponList(pPlayer, 7, 100);
  214.         case CSW_SCOUT: SetMessage_WeaponList(pPlayer, 2, 90);
  215.         case CSW_SG550: SetMessage_WeaponList(pPlayer, 4, 90);
  216.         case CSW_AWP: SetMessage_WeaponList(pPlayer, 1, 30);
  217.         case CSW_G3SG1: SetMessage_WeaponList(pPlayer, 2, 90);
  218.         default: return;
  219.     }
  220.  
  221.     SetMessage_SetFOV(pPlayer, 89);
  222.     SetMessage_CurWeapon(pPlayer, ammo);
  223.     SetMessage_SetFOV(pPlayer, 90);
  224. }
  225.  
  226. @Clear_Rank_Event(TaskId) {
  227.     new pPlayer = TaskId - TASKID_ARS;
  228.  
  229.     g_PlayerRankedUp[pPlayer] = false;
  230.     SetMessage_HideWeapon(pPlayer);
  231. }
  232.  
  233. SetMessage_WeaponList(const pPlayer, const pAmmoId, const pAmmoMaxAmount) {
  234.     message_begin(MSG_ONE, pMsgIds[0], .player = pPlayer); {
  235.         write_string(fmt("ars/%s", szRankNames[g_rank[pPlayer]][Rank_TxtSprFileName]));
  236.         write_byte(pAmmoId);
  237.         write_byte(pAmmoMaxAmount);
  238.         write_byte(-1);
  239.         write_byte(-1);
  240.         write_byte(0);
  241.         write_byte(11);
  242.         write_byte(2);
  243.         write_byte(0);
  244.     }
  245.     message_end();
  246. }
  247.  
  248. SetMessage_SetFOV(const pPlayer, const FOV) {
  249.     message_begin(MSG_ONE, pMsgIds[1], .player = pPlayer); {
  250.         write_byte(FOV);
  251.     }
  252.     message_end();
  253. }
  254.  
  255. SetMessage_CurWeapon(const pPlayer, const ammo) {
  256.     message_begin(MSG_ONE, pMsgIds[2], .player = pPlayer); {
  257.         write_byte(1);
  258.         write_byte(2);
  259.         write_byte(ammo);
  260.     }
  261.     message_end();
  262. }
  263.  
  264. SetMessage_HideWeapon(const pPlayer) {
  265.     message_begin(MSG_ONE, pMsgIds[3], .player = pPlayer);
  266.     write_byte(0);
  267.     message_end();
  268. }
  269.  
  270. /* nvault */
  271.  
  272. new g_vault;
  273.  
  274. public plugin_cfg() {
  275.     g_vault = nvault_open("AdvancedRankSystem");
  276.  
  277.     if(g_vault == INVALID_HANDLE) {
  278.         set_fail_state("Unknown nvault for AdvancedRankSystem");
  279.     }
  280. }
  281.  
  282. public plugin_end() {
  283.     nvault_close(g_vault);
  284. }
  285.  
  286. public client_authorized(pPlayer, const authid[]) {
  287.     g_xp[pPlayer] = nvault_get(g_vault, fmt("%s_xp", authid));
  288.     g_rank[pPlayer] = nvault_get(g_vault, fmt("%s_rank", authid));
  289. }
  290.  
  291. public client_disconnected(pPlayer) {
  292.     new authid[MAX_AUTHID_LENGTH], data[MAX_AUTHID_LENGTH+10];
  293.     get_user_authid(pPlayer, authid, charsmax(authid));
  294.  
  295.     num_to_str(g_xp[pPlayer], data, charsmax(data));
  296.     nvault_pset(g_vault, fmt("%s_xp", authid), data);
  297.  
  298.     num_to_str(g_rank[pPlayer], data, charsmax(data));
  299.     nvault_pset(g_vault, fmt("%s_rank", authid), data);
  300.  
  301.     remove_task(pPlayer);
  302.     remove_task(pPlayer + TASKID_ARS);
  303. }

_________________
Kép
FÓRUM


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Rang system
HozzászólásElküldve: 2021.02.02. 15:59 
Offline
Jómunkásember
Avatar

Csatlakozott: 2019.11.03. 22:00
Hozzászólások: 346
Megköszönt másnak: 37 alkalommal
Megköszönték neki: 22 alkalommal
Szia ha jól látom, hiányzik a #include <reapi>

_________________
****


A hozzászólást 1 alkalommal szerkesztették, utoljára theglorious 2021.02.06. 17:38-kor.
Hosszú idézet törölve


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Rang system
HozzászólásElküldve: 2021.02.02. 17:14 
Offline
Őstag
Avatar

Csatlakozott: 2015.07.27. 22:56
Hozzászólások: 1367
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 351 alkalommal
Nálam lefordult hibátlanul, próbáld a legfrissebb reapival:
https://github.com/s1lentq/reapi/releases/tag/5.19.0.210

Ők köszönték meg regener nek ezt a hozzászólást: kajlakaki01 (2021.02.03. 04:25)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Rang system
HozzászólásElküldve: 2021.02.03. 07:19 
Offline
Senior Tag
Avatar

Csatlakozott: 2021.01.08. 18:25
Hozzászólások: 273
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 20 alkalommal
regener írta:
Nálam lefordult hibátlanul, próbáld a legfrissebb reapival:
https://github.com/s1lentq/reapi/releases/tag/5.19.0.210


  1. L 02/03/2021 - 07:35:06: [AMXX] Plugin "advenced_rank_system.amxx" failed to load: Plugin uses an unknown function (name "get_member_s") - check your modules.ini.


nem találok semmi megoldást a neten xd

Kép

Kép

_________________
Kép
FÓRUM


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Rang system
HozzászólásElküldve: 2021.02.03. 08:51 
Offline
Senior Tag
Avatar

Csatlakozott: 2021.01.08. 18:25
Hozzászólások: 273
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 20 alkalommal
Megoldva.


reapi + ReGameDLL_CS Update.

_________________
Kép
FÓRUM


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  [ 5 hozzászólás ] 


Ki van itt

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