hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.21. 12:29



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: nincs regisztrált felhasználó 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  [ 3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: szint rendszer +menü hozzáírása
HozzászólásElküldve: 2015.03.25. 20:53 
Offline
Senior Tag

Csatlakozott: 2013.07.29. 13:15
Hozzászólások: 233
Megköszönt másnak: 125 alkalommal
Sziasztok. A következő plugin nagyon tetszik csak kellene hozzá még egykis dolgot hozzá írni és ebben kérem a ti segítségetek.
A következő pluginba belekellene írni még azt hogy ha beírom hogy /kes vagy /kesek akkor bejön egy menü és ás jelzi hogy még kés van megszerezve és még nincs és amelyik nincs ahoz írja azt hogy menyi pont kell még a megszerzéshez. Szóval csak egy menü kellene még hozzá.
A plugin többi része megtalálható: Szint rendszer (KÉS)

SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <cstrike>
  3. #include <engine>
  4. #include <hamsandwich>
  5. #include <colorchat>
  6. #include <nvault_util>
  7.  
  8.  
  9.  
  10. #define TAG "Szint mod"
  11.  
  12.  
  13. #define ADMIN_LEVEL ADMIN_KICK
  14.  
  15.  
  16. #define MaxLevels 100
  17.  
  18.  
  19. #define TopNumber 15
  20.  
  21.  
  22. #define MAX_PLAYERS 32
  23.  
  24.  
  25. new g_pCvar_Kill, g_pCvar_Headshot, g_pCvar_Win
  26. new g_pCvar_Suicide, g_pCvar_Dying, g_pCvar_Logadmin
  27.  
  28. new g_iHeadshot, g_iKill, g_iDying
  29. new g_iWin, g_iSuicide, g_iLogadmin
  30.  
  31. new g_iLevel[MAX_PLAYERS +1], g_iPoints[MAX_PLAYERS +1], g_iName[MAX_PLAYERS +1]
  32. new g_szLevels[MaxLevels], g_szLevelNames[MaxLevels][MAX_PLAYERS +1]
  33. new g_szKnife[MaxLevels][2][64], bool:g_bGiveRemove
  34.  
  35. new const SPECIAL_CHAR[2] = "-"
  36. new g_iVault
  37. new g_szTopMotd[1024]
  38.  
  39. //function by fysiks
  40. public plugin_precache( )
  41. {
  42. new cfgdir[64]
  43. get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir))
  44. format(cfgdir, charsmax(cfgdir), "%s/levelmod.ini", cfgdir)
  45.  
  46. new file = fopen(cfgdir, "rt");
  47.  
  48. if( file )
  49. {
  50. new i = 0;
  51. new szLevel[5], sfLineData[128];
  52.  
  53. while( !feof(file) && i < MaxLevels )
  54. {
  55. fgets(file, sfLineData, charsmax(sfLineData));
  56.  
  57. if( !sfLineData[0] || sfLineData[0] == ';' || sfLineData[0] == '/' && sfLineData[1] == '/' ) continue;
  58.  
  59. parse(sfLineData, szLevel, charsmax(szLevel), g_szLevelNames[i], charsmax(g_szLevelNames[]), g_szKnife[i][0], charsmax(g_szKnife[][]), g_szKnife[i][1], charsmax(g_szKnife[][]));
  60. g_szLevels[i] = str_to_num(szLevel);
  61.  
  62. precache_model(g_szKnife[i][0]);
  63. precache_model(g_szKnife[i][1]);
  64. i++;
  65. }
  66.  
  67. fclose(file);
  68. }
  69. else
  70. {
  71. set_fail_state("amxmodx/configs/levelmod.ini doesnt exist. Stops plugin.");
  72. }
  73. }
  74.  
  75. public plugin_cfg( )
  76. {
  77. g_iHeadshot = get_pcvar_num(g_pCvar_Headshot)
  78. g_iKill = get_pcvar_num(g_pCvar_Kill)
  79. g_iSuicide = get_pcvar_num(g_pCvar_Suicide)
  80. g_iWin = get_pcvar_num(g_pCvar_Win)
  81. g_iDying = get_pcvar_num(g_pCvar_Dying)
  82. g_iLogadmin = get_pcvar_num(g_pCvar_Logadmin)
  83. }
  84.  
  85. public plugin_init()
  86. {
  87. register_plugin("Szint plugin", "1.0", "SnusMumrikeN")
  88.  
  89. register_clcmd("say", "Cmd_Say")
  90. register_clcmd("say_team", "Cmd_Say")
  91.  
  92. register_clcmd( "PointsAmount", "PointsAction" )
  93.  
  94. g_pCvar_Kill = register_cvar("cvar_kill", "2") // alap +2
  95. g_pCvar_Headshot = register_cvar("cvar_headshot", "4") // alap +4
  96. g_pCvar_Win = register_cvar("cvar_win", "3") // alap +3
  97. g_pCvar_Dying = register_cvar("cvar_dying", "2") // alap -2
  98. g_pCvar_Suicide = register_cvar("cvar_suicide", "3") // alap -3
  99. g_pCvar_Logadmin = register_cvar("cvar_logadmin", "1") // alap 0
  100.  
  101. register_event( "DeathMsg", "Event_DeathMsg", "a" );
  102.  
  103. register_message(get_user_msgid("TextMsg") ,"Message_Win")
  104.  
  105. RegisterHam( Ham_Item_Deploy, "weapon_knife", "Ham_KnifeDeploy", 1 );
  106.  
  107. g_iVault = nvault_open("levelmod")
  108. FormatTop(TopNumber)
  109.  
  110. set_task( 300.0, "Task_Advertise", .flags="b" );
  111. }
  112.  
  113. public plugin_end()
  114. nvault_close(g_iVault)
  115.  
  116. public Cmd_Say(id)
  117. {
  118. new args[101], arg1[10], arg2[64]
  119. read_args(args, charsmax(args))
  120. remove_quotes(args)
  121. parse(args, arg1, charsmax(args), arg2, charsmax(arg2))
  122.  
  123. if(equali(arg1, "/szint" ) || equali(arg1, "/lvl" ))
  124. {
  125. new iPlayer = cmd_target(id, arg2, 0)
  126. if(!arg2[0] || !iPlayer)
  127. {
  128. if( g_szLevels[g_iLevel[id]+1] != 0)
  129. {
  130. ColorChat(id, GREY, "^4[%s]^1 Következő szint:^3 %i ^1[^3%s^1] | Ennyi pont kell a következő szinthez:^3 %i", TAG, g_iLevel[id]+1, g_szLevelNames[g_iLevel[id]+1], g_szLevels[g_iLevel[id]+1] - g_szLevels[g_iLevel[id]]);
  131. ColorChat(id, GREY, "^4[%s]^1 Jelenlegi ponjaid: ^3 %i^1 | Jelenlegi szinted:^3 %i ^1[^3%s^1]", TAG, g_iPoints[ id ], g_iLevel[id], g_szLevelNames[g_iLevel[id]]);
  132. }
  133. else
  134. {
  135. ColorChat(id, GREY, "^4[%s]^1 Jelenlegi pontjaid: ^3 %i^1 | Jelenlegi szinted:^3 %i ^1[^3%s^1] (^4TELJES SZINT^1)", TAG, g_iPoints[ id ], g_iLevel[id], g_szLevelNames[g_iLevel[id]]);
  136. }
  137. }
  138. else
  139. {
  140. new iName[32]
  141. get_user_name(iPlayer, iName, 31)
  142.  
  143. if( g_szLevels[g_iLevel[iPlayer]+1] != 0)
  144. {
  145. ColorChat(id, GREY, "^4[%s]^1 Következő szint:^3 %i ^1[^3%s^1] | Ennyi pont kell a következő szinthez:^3 %i", TAG, g_iLevel[iPlayer]+1, g_szLevelNames[g_iLevel[iPlayer]+1], g_szLevels[g_iLevel[iPlayer]+1] - g_szLevels[g_iLevel[iPlayer]]);
  146. ColorChat(id, GREY, "^4[%s]^3 %s^1 Kapott^3 %i^1 pontot | Szint:^3 %i ^1[^3%s^1]", TAG, iName, g_iPoints[ iPlayer ], g_iLevel[iPlayer], g_szLevelNames[g_iLevel[iPlayer]]);
  147. }
  148. else
  149. {
  150. ColorChat(id, GREY, "^4[%s]^3 %s^1 kapott^3 %i^1 pontot | Jelenlegi szintje:^3 %i ^1[^3%s^1] (^4TELJES SZINT^1)", TAG, iName, g_iPoints[ iPlayer ], g_iLevel[iPlayer], g_szLevelNames[g_iLevel[iPlayer]]);
  151. }
  152. }
  153. }
  154. else if(equali(arg1, "/top"))
  155. {
  156. show_motd( id, g_szTopMotd, "Top Pont lista" )
  157. }
  158. else if(equali(arg1, "/pontadas"))
  159. {
  160. Playerlist( id )
  161. }
  162. }
  163.  
  164. Playerlist( id )
  165. {
  166. if(get_user_flags( id ) & ADMIN_LEVEL_A )
  167. {
  168. new Playermenu, Temp[64]
  169.  
  170. formatex(Temp, charsmax(Temp), "\w[\r%s\w]\y \rAddolás menü^n\wVálaszdi ki a játékost", TAG)
  171. Playermenu = menu_create(Temp, "PlayerlistHandler");
  172.  
  173. new players[32], pnum, tempid;
  174. new szName[32], szTempid[10];
  175.  
  176. formatex(Temp, charsmax(Temp), "\y[\r%s\y]^n", g_bGiveRemove ? "ELVÉTEL" : "ADÁS");
  177. menu_additem(Playermenu, Temp, "0")
  178.  
  179. get_players(players, pnum, "ch");
  180. for( new i; i<pnum; i++ )
  181. {
  182. tempid = players[i];
  183.  
  184. get_user_name(tempid, szName, charsmax(szName));
  185. num_to_str(tempid, szTempid, charsmax(szTempid));
  186. menu_additem(Playermenu, szName, szTempid, 0);
  187. }
  188.  
  189. menu_display(id, Playermenu);
  190. }
  191. return PLUGIN_HANDLED
  192. }
  193.  
  194. public PlayerlistHandler(id, menu, item) {
  195. if( item == MENU_EXIT )
  196. {
  197. menu_destroy(menu);
  198. return PLUGIN_HANDLED;
  199. }
  200.  
  201. new data[6], szName[32];
  202. new access, callback;
  203. menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
  204.  
  205. new key = str_to_num(data);
  206. if( key == 0 )
  207. {
  208. if((g_bGiveRemove = !g_bGiveRemove))
  209. {
  210. g_bGiveRemove = true
  211.  
  212. menu_destroy(menu);
  213. Playerlist( id )
  214. return PLUGIN_HANDLED
  215. }
  216. else
  217. {
  218. g_bGiveRemove = false
  219.  
  220. menu_destroy(menu);
  221. Playerlist( id )
  222. return PLUGIN_HANDLED
  223. }
  224. }
  225.  
  226. g_iName[id] = key
  227.  
  228. client_cmd(id, "messagemode PointsAmount");
  229. client_cmd(id, "spk fvox/blip");
  230.  
  231. menu_destroy(menu);
  232. return PLUGIN_HANDLED;
  233. }
  234.  
  235. public PointsAction(id)
  236. {
  237. if(!is_user_connected(id))
  238. return PLUGIN_HANDLED
  239.  
  240. new iAmount[50]
  241. read_argv(1,iAmount,49)
  242.  
  243. new szName[2][32]
  244. get_user_name(id, szName[0], 31)
  245. get_user_name(g_iName[id], szName[1], 31)
  246.  
  247. if( str_to_num(iAmount) >= 9999999 )
  248. {
  249. ColorChat(id, GREY, "^4[%s]^1 ^3 %s^1 pontot", TAG, g_bGiveRemove ? "elvettek tőled" : "kaptál");
  250. return PLUGIN_HANDLED;
  251. }
  252. if(!is_user_connected(g_iName[id]))
  253. {
  254. ColorChat(id, GREY, "^4[%s]^1 Felhasználó^3 %s^1 nem online", TAG, szName[1]);
  255. return PLUGIN_HANDLED
  256. }
  257.  
  258. if( g_iLogadmin == 1 )
  259. {
  260. new message[200], Time[64];
  261. get_time("%c", Time, charsmax(Time));
  262. format ( message, charsmax(message), "[%s] %s %s %s %i points", Time, szName[0], g_bGiveRemove ? "elvett" : "adott", szName[1], str_to_num(iAmount));
  263. write_file ( "addons/amxmodx/logs/levelmod.txt", message )
  264. }
  265.  
  266. ColorChat(0, GREY, "^4[%s]^3 %s^1 %s^3 %s^4 %i^1 pontot", TAG, szName[0], g_bGiveRemove ? "elvett" : "adott", szName[1], str_to_num(iAmount));
  267.  
  268. set_hudmessage(255, 0, 0, -1.0, 0.1, 0, 1.0, 7.0, 0.1, 1.0)
  269. show_hudmessage( 0, "[%s] %s %s %s %i pontot", TAG, szName[0], g_bGiveRemove ? "elvett" : "adott", szName[1], str_to_num(iAmount));
  270.  
  271. client_cmd(0, "spk buttons/bell1");
  272.  
  273. if( g_bGiveRemove )
  274. g_iPoints[g_iName[id]] -= str_to_num(iAmount)
  275. else
  276. g_iPoints[g_iName[id]] += str_to_num(iAmount)
  277.  
  278. CheckLevel(g_iName[id])
  279.  
  280. return PLUGIN_HANDLED
  281. }
  282.  
  283. CheckLevel(id)
  284. {
  285. if( g_iPoints[id] >= g_szLevels[g_iLevel[id]+1] && g_szLevels[g_iLevel[id]+1] != 0)
  286. {
  287. g_iLevel[id]++;
  288.  
  289. if( g_iPoints[id] >= g_szLevels[g_iLevel[id]+1] && g_szLevels[g_iLevel[id]+1] != 0)
  290. {
  291. CheckLevel(id)
  292. return PLUGIN_HANDLED
  293. }
  294.  
  295. new g_iName[ 32 ]
  296. get_user_name( id, g_iName, charsmax(g_iName) );
  297.  
  298. ColorChat ( 0, GREY, "^4[%s]^1 Gratulálunk ^3 %s^1 elérte a ^3 %i^1 szintet! [^3%s^1]", TAG, g_iName, g_iLevel[id], g_szLevelNames[g_iLevel[id]])
  299.  
  300. client_cmd(0, "spk events/task_complete.wav");
  301.  
  302. if( is_user_alive( id ) && get_user_weapon( id ) == CSW_KNIFE )
  303. {
  304. entity_set_string( id, EV_SZ_viewmodel, g_szKnife[g_iLevel[id]][0] );
  305. entity_set_string( id, EV_SZ_weaponmodel, g_szKnife[g_iLevel[id]][1] );
  306. }
  307. }
  308. else if( g_iLevel[id] != 0 && g_iPoints[id] <= g_szLevels[g_iLevel[id]-1])
  309. {
  310. g_iLevel[id]--;
  311.  
  312. if( g_iLevel[id] != 0 && g_iPoints[id] <= g_szLevels[g_iLevel[id]-1] )
  313. {
  314. CheckLevel(id)
  315. return PLUGIN_HANDLED
  316. }
  317. if( is_user_alive( id ) && get_user_weapon( id ) == CSW_KNIFE )
  318. {
  319. entity_set_string( id, EV_SZ_viewmodel, g_szKnife[g_iLevel[id]][0] );
  320. entity_set_string( id, EV_SZ_weaponmodel, g_szKnife[g_iLevel[id]][1] );
  321. }
  322. ColorChat ( id, GREY, "^4[%s]^1 Szinted csökkent. Jelenlegi szinted^3 %i^1 [^3%s^1]", TAG, g_iLevel[id], g_szLevelNames[g_iLevel[id]])
  323. }
  324.  
  325. return PLUGIN_HANDLED
  326. }
  327.  
  328. public Event_DeathMsg()
  329. {
  330. new g_iKiller = read_data(1);
  331. new g_iVictim = read_data(2);
  332.  
  333. if( 1 <= g_iKiller <= get_maxplayers() && cs_get_user_team( g_iVictim ) != cs_get_user_team( g_iKiller )
  334. && is_user_connected( g_iKiller ))
  335. {
  336. new g_iNames[2][32]
  337. get_user_name(g_iKiller, g_iNames[0], 31)
  338. get_user_name(g_iVictim, g_iNames[1], 31)
  339.  
  340. if( read_data( 3 ) && g_iHeadshot != 0 )
  341. {
  342. g_iPoints[ g_iKiller ] += g_iHeadshot
  343. ColorChat ( g_iKiller, GREY, "^4[%s]^1 Kaptál ^3 %i^1 pontot mert megölted ^3 %s^1 [^3FEJLÖVÉS^1]", TAG, g_iHeadshot, g_iNames[1])
  344. }
  345. else if( g_iKill != 0 )
  346. {
  347. g_iPoints[ g_iKiller ] += g_iKill
  348. ColorChat ( g_iKiller, GREY, "^4[%s]^1 Kaptál ^3 %i^1 pontot mert megölted ^3 %s", TAG, g_iKill, g_iNames[1])
  349. }
  350. else if( g_iDying != 0 )
  351. {
  352. g_iPoints[ g_iVictim ] -= g_iDying
  353. ColorChat ( g_iVictim, GREY, "^4[%s]^1 Elvesztettél ^3 %i^1 pontot mert megölt téged^3 %s", TAG, g_iDying, g_iNames[0])
  354. }
  355.  
  356. }
  357. else if( g_iSuicide != 0 && g_iVictim == g_iKiller)
  358. {
  359. g_iPoints[ g_iKiller ] -= g_iSuicide
  360. ColorChat ( g_iKiller, GREY, "^4[%s]^1 Elvesztettél ^3 %i^1 pontot mert meghaltál!", TAG, g_iSuicide)
  361. }
  362. CheckLevel(g_iKiller)
  363. CheckLevel(g_iVictim)
  364. }
  365.  
  366. public Ham_KnifeDeploy(iWeapon)
  367. {
  368. new id = get_pdata_cbase(iWeapon, 41, 4)
  369.  
  370. if(is_user_alive(id))
  371. {
  372. entity_set_string( id, EV_SZ_viewmodel, g_szKnife[g_iLevel[id]][0] );
  373. entity_set_string( id, EV_SZ_weaponmodel, g_szKnife[g_iLevel[id]][1] );
  374. }
  375. }
  376.  
  377. public Message_Win(const MsgId, const MsgDest, const MsgEntity)
  378. {
  379. if( g_iWin == 0 )
  380. return PLUGIN_HANDLED
  381.  
  382. new Flags[32], iPlayers[32], iNum, id
  383.  
  384. new Message[ 16 ];
  385. get_msg_arg_string( 2, Message, charsmax( Message ) );
  386.  
  387. switch(Message[1])
  388. {
  389. case 'T':
  390. {
  391. copy(Flags, charsmax(Flags), "TERRORIST")
  392. }
  393. case 'C':
  394. {
  395. copy(Flags, charsmax(Flags), "CT")
  396. }
  397. }
  398.  
  399. get_players( iPlayers, iNum, "ae", Flags);
  400.  
  401. for( new i; i < iNum; i++ )
  402. {
  403. id = iPlayers[i];
  404.  
  405. g_iPoints[ id ] += g_iWin
  406. ColorChat ( id, GREY, "^4[%s]^1 Kaptál^3 %i^1 pontot mert megnyertétek a kört", TAG, g_iWin)
  407. CheckLevel(id)
  408. }
  409. return PLUGIN_HANDLED
  410. }
  411.  
  412. public Task_Advertise()
  413. {
  414. ColorChat(0, GREY, "^4[%s]^1 A szerveren szint rendszer fut!^3 ^1 magyarosította: ^3loleee", TAG);
  415. }
  416.  
  417. stock FormatTop(iNum)
  418. {
  419. if(g_iVault == INVALID_HANDLE)
  420. set_fail_state("nVault returned invalid handle")
  421.  
  422. enum _:VaultData
  423. {
  424. VD_Key[33],
  425. VD_Value,
  426. VD_szName[33]
  427. };
  428.  
  429. new Vault2 = nvault_util_open("levelmod")
  430. new iSize = nvault_util_count(Vault2)
  431.  
  432. new Array:entries = ArrayCreate(VaultData);
  433. new sizeEntries
  434.  
  435. new data[VaultData], value[256], data2[VaultData]
  436.  
  437. for(new i = 0, pos, timestamp; i < iSize; i++)
  438. {
  439. pos = nvault_util_read(Vault2, pos, data[VD_Key], charsmax(data[VD_Key]), value, charsmax(value), timestamp);
  440.  
  441. if(contain(data[VD_Key], SPECIAL_CHAR) != -1)
  442. continue;
  443.  
  444. else
  445. {
  446. formatex(data[VD_szName], charsmax(data[VD_szName]), "%s%s", data[VD_Key], SPECIAL_CHAR)
  447. nvault_get(g_iVault, data[VD_szName], data[VD_szName], charsmax(data[VD_szName]))
  448. }
  449.  
  450. data[VD_Value] = str_to_num(value);
  451.  
  452. if(sizeEntries == 0)
  453. {
  454. ArrayPushArray(entries, data);
  455. sizeEntries++;
  456. continue;
  457. }
  458.  
  459. else
  460. {
  461. for(timestamp = 0; timestamp <= sizeEntries; timestamp++)
  462. {
  463. if(timestamp == sizeEntries)
  464. {
  465. if(sizeEntries < iNum)
  466. {
  467. ArrayPushArray(entries, data);
  468. sizeEntries++;
  469. }
  470.  
  471. break;
  472. }
  473.  
  474. ArrayGetArray(entries, timestamp, data2);
  475.  
  476. if(data[VD_Value] >= data2[VD_Value])
  477. {
  478. ArrayInsertArrayBefore(entries, timestamp, data);
  479.  
  480. if(sizeEntries < iNum)
  481. {
  482. sizeEntries++;
  483. }
  484. else
  485. {
  486. ArrayDeleteItem(entries, sizeEntries);
  487. }
  488.  
  489. break;
  490. }
  491. }
  492. }
  493. }
  494.  
  495. new iLen
  496.  
  497. new len = charsmax(g_szTopMotd)
  498.  
  499. iLen = formatex(g_szTopMotd, len, "<STYLE>body{background:#212121;color:#d1d1d1;font-family:Arial}table{width:100%%;font-size:28px}</STYLE><table cellpadding=1 cellspacing=1 border=0>")
  500. iLen += formatex(g_szTopMotd[iLen], len - iLen, "<tr bgcolor=#333333><th width=1%%><align=left font color=white> %s <th width=5%%> %-22.22s <th width=5%%> %s", "#", "N�v", "Pontok")
  501.  
  502. new i
  503. for(i = 0; i < sizeEntries; i++)
  504. {
  505. ArrayGetArray(entries, i, data);
  506.  
  507. data[VD_Key][32] = 0;
  508. data[VD_szName][32] = 0
  509.  
  510. replace_all(data[VD_szName], charsmax(data[VD_szName]), "<", "&lt;")
  511. replace_all(data[VD_szName], charsmax(data[VD_szName]), ">", "&gt;")
  512.  
  513. iLen += formatex(g_szTopMotd[iLen], len - iLen, "<tr align=left%s><td align=left><font color=white> %d. <td> %-22.22s <td> %d", " bgcolor=#2b5b95", (i+1), data[VD_szName], data[VD_Value])
  514. }
  515.  
  516. ArrayDestroy(entries);
  517.  
  518. iLen += formatex(g_szTopMotd[iLen], len - iLen, "</table></body>")
  519. }
  520.  
  521. public client_putinserver(id)
  522. {
  523. if( is_user_hltv(id) || is_user_bot(id) )
  524. return;
  525.  
  526. Load(id)
  527. }
  528.  
  529. public client_disconnect(id)
  530. {
  531. if( is_user_hltv(id) || is_user_bot(id) )
  532. return;
  533.  
  534. Save(id)
  535. }
  536.  
  537. stock Save(id)
  538. {
  539. if(g_iVault == INVALID_HANDLE)
  540. set_fail_state("nVault returned invalid handle")
  541.  
  542. new szAuthId[35];
  543. get_user_authid(id, szAuthId, charsmax(szAuthId))
  544.  
  545. new szName[32];
  546. get_user_name(id, szName, 31)
  547.  
  548. new szData[256];
  549. formatex(szData, charsmax(szData), "%i %i", g_iPoints[id], g_iLevel[id]);
  550.  
  551. nvault_remove(g_iVault, szAuthId)
  552. nvault_set(g_iVault, szAuthId, szData)
  553.  
  554. format(szAuthId, charsmax(szAuthId), "%s%s", szAuthId, SPECIAL_CHAR)
  555. nvault_remove(g_iVault, szAuthId)
  556. nvault_set(g_iVault, szAuthId, szName)
  557. }
  558.  
  559. stock Load(id)
  560. {
  561. if(g_iVault == INVALID_HANDLE)
  562. set_fail_state("nVault returned invalid handle")
  563.  
  564. new szSavedName[32]
  565. new szName[32]; get_user_name(id, szName, charsmax(szName))
  566. new szAuthId[33]; get_user_authid(id, szAuthId, charsmax(szAuthId))
  567.  
  568. new szData[256], iTimeStamp
  569. if( !nvault_lookup(g_iVault, szAuthId, szData, charsmax(szData), iTimeStamp) )
  570. {
  571. nvault_set(g_iVault, szAuthId, "0")
  572.  
  573. format(szAuthId, charsmax(szAuthId), "%s%s", szAuthId, SPECIAL_CHAR)
  574. nvault_set(g_iVault, szAuthId, szName)
  575.  
  576. return 0
  577. }
  578.  
  579. ParseLoadData(id, szData);
  580.  
  581. format(szAuthId, charsmax(szAuthId), "%s%s", szAuthId, SPECIAL_CHAR)
  582. nvault_get(g_iVault, szAuthId, szSavedName)
  583.  
  584. if(!equal(szName, szSavedName))
  585. {
  586. nvault_remove(g_iVault, szAuthId)
  587. nvault_set(g_iVault, szAuthId, szName)
  588. }
  589. return 0
  590. }
  591.  
  592. ParseLoadData(id, szData[256])
  593. {
  594. static szNum[11];
  595. strbreak(szData, szNum, charsmax(szNum), szData, charsmax(szData));
  596. g_iPoints[id] = str_to_num(szNum);
  597.  
  598. strbreak(szData, szNum, charsmax(szNum), szData, charsmax(szData));
  599. g_iLevel[id] = str_to_num(szNum);
  600. }
  601.  
  602. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  603. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1053\\ f0\\ fs16 \n\\ par }
  604. */
  605.  


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: szint rendszer +menü hozzáírása
HozzászólásElküldve: 2015.03.26. 11:36 
Offline
Lelkes
Avatar

Csatlakozott: 2015.02.14. 01:11
Hozzászólások: 28
Megköszönték neki: 6 alkalommal
Kés-Skinek v2.2

_________________
Ha segítettem ne felejtsd el meg köszönni! :)

[steam]loleee[/steam]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: szint rendszer +menü hozzáírása
HozzászólásElküldve: 2015.03.26. 12:13 
Offline
Senior Tag

Csatlakozott: 2013.07.29. 13:15
Hozzászólások: 233
Megköszönt másnak: 125 alkalommal
Nem jó! Az nemolyan hogy szintet lehet vissza esni meg ilyesmi. Az csak egy sima késmenü.


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


Ki van itt

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