Mała edycja SMA rang.
_Remik_92_Novy_
25.12.2014
Witam serdecznie.
Jeśli ktoś da radę prosiłbym o przerobienie tego pluginu z rangami.
O co chodzi:
1) W 'zabójstwach' dodać do którego killa aktywna jest dana ranga, a co za tym idzie od którego killa zaczyna się nowa.
Prościej:
Mamy rangi: 'szeregowy' - 'plutonowy' - 'kapelan', przedział punktowy to '5' - '50' - '100'
Mamy rangę 'plutonowy' i mamy np 35killi więc w zabójstwach pisze: Zabójstw: 35/50.
2) Druga sprawa to zamiast ranku widniało:
Forum: www.PokazSkilla.eu
Z góry dzięki i czekam na odpowiedź. Oczywiście repka poleci jak najbardziej
SMA jest w załączniku.
Miniatura:
Jeśli ktoś da radę prosiłbym o przerobienie tego pluginu z rangami.
O co chodzi:
1) W 'zabójstwach' dodać do którego killa aktywna jest dana ranga, a co za tym idzie od którego killa zaczyna się nowa.
Prościej:
Mamy rangi: 'szeregowy' - 'plutonowy' - 'kapelan', przedział punktowy to '5' - '50' - '100'
Mamy rangę 'plutonowy' i mamy np 35killi więc w zabójstwach pisze: Zabójstw: 35/50.
2) Druga sprawa to zamiast ranku widniało:
Forum: www.PokazSkilla.eu
Z góry dzięki i czekam na odpowiedź. Oczywiście repka poleci jak najbardziej
SMA jest w załączniku.
Miniatura:
Załączone pliki
XXL
25.12.2014
Pomógłbym ci ale nie moge otworzyć tego .sma jakieś Chińskie literki się tworzą
_Remik_92_Novy_
25.12.2014
Plika amxx nie ma bo po co to komu? SMA normalnie wordem otwieram i jest git (przez notatnik plik nie jest uporządkowany ale i tak są normalne znaki), więc nie mam pojęcia o co CI chodzi XXL.
Użytkownik _Remik_92_Novy_ edytował ten post 25.12.2014 21:22
Użytkownik _Remik_92_Novy_ edytował ten post 25.12.2014 21:22
_Remik_92_Novy_
25.12.2014
Kod SMA.
Miniatura w załączniku.
/******************************************************************************/ // If you change one of the following settings, do not forget to recompile // the plugin and to install the new .amx file on your server. // You can find the list of admin flags in the amx/examples/include/amxconst.inc file. //Defines font color in the motd, you can also use hexadecimal colors #define FONT_COLOR "yellow" //Defines background color of the motd, you can also use hexadecimal colors #define BG_COLOR "black" //Defines a size of font in the motd #define FONT_SIZE 4 //Admin flag for "ranks_reload" command #define ADMIN_FLAG ADMIN_CFG //Defines directory of the configuration file #define FILE_DIR "addons/amxmodx/configs/ranks.ini" // Uncomment the following line to enable the AMX logs for this plugin. #define USE_LOGS // File name where the logs are stored (will be put in the "amx/logs" directory). #if defined USE_LOGS new const g_szLogFile[] = "ranks.log" #endif // Defines hard limit how many ranks can be read from the "ranks.ini" file. #define MAX_RANKS 25 // Defines how long can be rank name. #define MAX_NAME_RANK 33 /******************************************************************************/ #include #include #include #include #define PLUGIN "Ranks" #define VERSION "2.1.1" #define AUTHOR "Ni3znajomy" new g_pCvarRank, g_pCvarDiff; #define TASK 3929 new g_iKills[33]; new g_szMotd[1012]; new g_szRanks[MAX_RANKS][MAX_NAME_RANK] new g_iRanks[MAX_RANKS]; new g_szPlayerRank[33][MAX_NAME_RANK] new g_iPlayerLevel[33]; new g_iLoaded; new ShowStats; new Vip; new g_iPos[33]; new g_iAllPos; #define NoShowSet(%1) (ShowStats |= (1<<(%1-1))) #define NoShowCheck(%1) (ShowStats & (1<<(%1-1))) #define NoShowRemove(%1) (ShowStats &= ~(1<<(%1-1))) #define SetVip(%1) (Vip |= (1<<(%1-1))) #define CheckVip(%1) (Vip & (1<<(%1-1))) #define RemoveVip(%1) (Vip &= ~(1<<(%1-1))) #define VIP_FLAG ADMIN_LEVEL_H #define ADMINS_RELOAD 30.0 #define MaxLevel g_iLoaded - 1 new g_hSync; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_cvar("ranks_version", VERSION, FCVAR_SPONLY|FCVAR_SERVER, 2.10); register_clcmd("say /rangi", "ShowRanks", -1, "- pokazuje motd z rangami"); register_clcmd("say_team /rangi", "ShowRanks", -1, "- pokazuje motd z rangami"); register_concmd("ranks_reload", "ReloadRanks", ADMIN_FLAG, "- przeladowuje rangi"); g_pCvarDiff = register_cvar("ranks_diffrence", "0", _, 0.0); g_pCvarRank = register_cvar("ranks_show_dead", "1", _, 1.0); register_event("DeathMsg", "DeathMsg_event", "a", "1!0"); register_event("ResetHUD", "ResetHUD_event", "bef"); g_hSync = CreateHudSyncObj(1); set_task(ADMINS_RELOAD, "Reload", 5435, _, _, "b"); LoadRanks(); CreateMotd(); } public Reload(tid) { server_cmd("amx_reloadadmins"); server_exec(); } public ReloadRanks(id, level, cid) { if(!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED; LoadRanks(); CreateMotd(); new szName[33]; get_user_name(id, szName, charsmax(szName)); #if defined USE_LOGS new szSID[42], szIP[25]; new userid = 0; if(id) { get_user_authid(id, szSID, charsmax(szSID)); userid = get_user_userid(id); } get_user_ip(id, szIP, charsmax(szIP), 24); log_to_file(g_szLogFile, " przeladowal rangi.", szName, userid, szIP, (id) ? szSID : "Brak"); #endif console_print(id, "Przeladowanie rang..."); client_print(id, print_chat, "ADMIN %s: Przeladowal rangi.", szName); new players[32], num; get_players(players, num, "ch"); for(new i=0;i<num;i++) { new player = players[i]; CheckLevel(player); } return PLUGIN_HANDLED } public ResetHUD_event(id) { if(!task_exists(TASK+id)) { SetTask(id); } } public plugin_cfg() { g_iAllPos = get_statsnum(); } public CreateMotd() { new iLen; iLen += formatex(g_szMotd, 1011, "", BG_COLOR, FONT_COLOR, FONT_SIZE); for(new i=0;i= g_iRanks[g_iPlayerLevel[attacker]]) { formatex(g_szPlayerRank[attacker], MAX_NAME_RANK-1, g_szRanks[++g_iPlayerLevel[attacker]]); } } if(!get_pcvar_num(g_pCvarDiff)) return; new level = g_iPlayerLevel[victim]; if(is_user_connected(victim) && --g_iKills[victim] < g_iRanks[--level] && g_iPlayerLevel[victim]) { formatex(g_szPlayerRank[victim], MAX_NAME_RANK-1, g_szRanks[--g_iPlayerLevel[victim]]); } } public client_putinserver(id) { if(is_user_bot(id) || is_user_hltv(id)) { NoShowSet(id); return; } set_task(1.0, "LoadPlayerStats", id); } public client_authorized(id) { if(get_user_flags(id) & VIP_FLAG) { SetVip(id); } } public LoadPlayerStats(id) { static stats[8], body[8]; g_iPos[id] = get_user_stats(id, stats, body); g_iKills[id] = (get_pcvar_num(g_pCvarDiff)) ? stats[0]-stats[1] : stats[0]; CheckLevel(id); SetTask(id); } public client_disconnect(id) { if(task_exists(TASK+id)) remove_task(TASK+id) if(task_exists(id)) remove_task(id); if(NoShowCheck(id)) NoShowRemove(id); if(CheckVip(id)) RemoveVip(id); } public showRank(param[], tid) { new id = param[0], iVar; iVar = get_pcvar_num(g_pCvarRank); if(iVar && !is_user_alive(id)) { new id2 = entity_get_int(id, EV_INT_iuser2); if(!id2 || NoShowCheck(id2)) { return; } set_hudmessage(255, 255, 255, 0.03, 0.25, 0, 6.0, 2.0, 0.1, 0.2, 3); ShowSyncHudMsg(id, g_hSync, "Ranga: %s^nZabojstw: %d^nVIP: %s^nForum: PokazSkilla.eu, (CheckVip(id2)) ? "Tak" : "Nie", g_iPos[id2], g_iAllPos); return; } else if(!iVar && !is_user_alive(id)) { ClearSyncHud(id, g_hSync); remove_task(TASK+id); return; } set_hudmessage(255, 255, 255, 0.03, 0.25, 0, 6.0, 2.0, 0.1, 0.2, 3); ShowSyncHudMsg(id, g_hSync, "Ranga: %s^nZabojstw: %d^nVIP: %s^nForum: PokazSkilla.eu, (CheckVip(id)) ? "Tak" : "Nie", g_iPos[id], g_iAllPos); } CheckLevel(id) { g_iPlayerLevel[id] = 0; for(new i=0;i= g_iRanks[i] && g_iPlayerLevel[id] < MaxLevel) ++g_iPlayerLevel[id]; else break; } formatex(g_szPlayerRank[id], MAX_NAME_RANK-1, g_szRanks[g_iPlayerLevel[id]]) } LoadRanks() { g_iLoaded = 0; new szDir[64]; formatex(szDir, charsmax(szDir), FILE_DIR); #if defined USE_LOGS log_amx("[Ranks] Szukanie pliku..."); #endif if(!file_exists(szDir)) { set_fail_state("[Rangi] Nie znaleziono pliku konfiguracyjnego."); return; } #if defined USE_LOGS log_amx("[Rangi] Znaleziono plik! Wczytywanie rang..."); #endif new szLine[64], iLen, szName[MAX_NAME_RANK], szKills[33]; for(new i=0;read_file(szDir, i, szLine, 63, iLen);i++) { trim(szLine); parse(szLine, szName, MAX_NAME_RANK-1, szKills, 32); if(!szLine[0] || szLine[0] == ';' || szLine[0] == '/') continue; formatex(g_szRanks[g_iLoaded], MAX_NAME_RANK-1, szName); g_iRanks[g_iLoaded] = str_to_num(szKills) if(++g_iLoaded >= MAX_RANKS) { #if defined AMX_LOGS log_amx("[Rangi] Limit zostal osiagniety (%d). Zwieksz wartosc ^"MAX_RANKS^" zeby wczytac wiecej rang.", MAX_RANKS); #endif break; } #if defined USE_LOGS log_amx("[Rangi] Wczytano range ^"%s^".", szName); #endif } #if defined USE_LOGS log_amx("[Rangi] Wczytano %d rang(i).", g_iLoaded); #endif } SetTask(id) { new param[1]; param[0] = id; set_task(1.0, "showRank", TASK+id, param, 1, "b") }
Miniatura w załączniku.
sebul
04.01.2015
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Temat zamknięty na prośbę użytkownika.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Temat zamknięty na prośbę użytkownika.
Z pozdrowieniami,
Zespół AMXX.PL