Descriere: Pluginul transformă experiența de joc dintr-una individuală în una de echipă. Permite administratorilor să creeze clanuri oficiale, iar jucătorilor să colaboreze pentru a strânge Clan XP. Sistemul include o ierarhie de 6 rank-uri complet personalizabile, chat privat și un clasament dinamic (Top 10) bazat pe performanță.
> clanurile pot fi create doar de admini cu accesele: abcdefghijklmnopqrstuv
> nu poti fi lider la 2 clanuri
Pluginul este creat de mine cu ajutorul Gemini GPT, nu stiu atat de bine sa scriptez.
Cum se face XP in clan?
Kill normal, +1 Clan XP
Headshot, +3 Clan XP
Kill cu Cuțitul, +5 Clan XP
Plantare Bombă, +3 Clan XP
Dezamorsare Bombă, +3 Clan XP
Descarcare:
clan_top.txt [configs/]:
clan_help.txt [configs/]:
Nume: Clan System+
Versiune: 0.5
Link oficial: -
Instalare:
1. Fisierul clan_system.sma il puneti in addons/amxmodx/scripting
2. Fisierul clan_system.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:
4. Creati in /cstrike/addons/amxmodx/configs, fisierul clan_top.txt si puneti codul de mai sus
5. Creati in /cstrike/addons/amxmodx/configs, fisierul clan_help.txt si puneti codul de mai sus
Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg):
Comenzi administrative (se tasteaza in consola si trebuie sa fiti administrator):
/createclan - Deschide meniul de creație. Necesită selectarea unui Owner (care trebuie să fie online și fără alt clan) și setarea unui nume.
/clandelete - Permite ștergerea definitivă a unui clan prin introducerea numelui acestuia.
amx_deleteclanxp <nume> - (Consolă) Resetează experiența unui anumit clan la 0.
amx_deleteallclanxp - (Consolă) Șterge baza de date de XP pentru toate clanurile de pe server.
Comenzi publice (se tasteaza in joc prin apasarea tastei Y):
/clan - Deschide meniul principal. Aici poți vedea XP-ul total, lista membrilor online și opțiunile de administrare (dacă ești Lider).
/c <mesaj> - Chat privat. Mesajul va apărea sub forma: [NumeRank] Nume : mesaj și va fi văzut doar de colegii de clan.
/clantop - Afișează o fereastră (MOTD) cu cele mai bune 10 clanuri de pe server în funcție de XP.
/myclanxp - Îți arată cât de mult ai contribuit tu personal la progresul clanului tău.
/clanhelp - Deschide un manual de utilizare (din clan_help.txt).
/invite - Deschide meniul de invitații (disponibil doar pentru Rank 6).
Module necesare (se sterge ; din fata modulului de mai jos; acestea le gasiti in fisierul amxmodx\configs\modules.ini):
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <nvault>
Imagini:
Pentru buguri si sugestii, va rog sa lasati un reply.
> clanurile pot fi create doar de admini cu accesele: abcdefghijklmnopqrstuv
> nu poti fi lider la 2 clanuri
Pluginul este creat de mine cu ajutorul Gemini GPT, nu stiu atat de bine sa scriptez.
Cum se face XP in clan?
Kill normal, +1 Clan XP
Headshot, +3 Clan XP
Kill cu Cuțitul, +5 Clan XP
Plantare Bombă, +3 Clan XP
Dezamorsare Bombă, +3 Clan XP
Descarcare:
Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <nvault>
#define PLUGIN "Clan System+"
#define VERSION "0.5"
#define AUTHOR "mihay111/Gemini GPT"
#define ADMIN_ACCESS_FLAG (ADMIN_ALL|ADMIN_IMMUNITY|ADMIN_RESERVATION|ADMIN_KICK|ADMIN_BAN|ADMIN_SLAY|ADMIN_MAP|ADMIN_CVAR|ADMIN_CFG|ADMIN_CHAT|ADMIN_VOTE|ADMIN_PASSWORD|ADMIN_RCON|ADMIN_LEVEL_A|ADMIN_LEVEL_B|ADMIN_LEVEL_C|ADMIN_LEVEL_D|ADMIN_LEVEL_E|ADMIN_LEVEL_F|ADMIN_LEVEL_G|ADMIN_LEVEL_H|ADMIN_MENU)
new g_vault_clans, g_vault_ranks, g_vault_xp;
new g_szPlayerClan[33][32], g_iPlayerRank[33], g_iMemberXP[33];
new g_szRankNames[33][7][32], g_szAuthID[33][35];
new g_iTargetOwner[33], g_szTempClanName[33][32], g_iInviteSource[33], g_iEditingRank[33], g_iManagingMember[33];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /createclan", "Cmd_CreateClan", ADMIN_ACCESS_FLAG);
register_clcmd("say /clandelete", "Cmd_DeleteClan", ADMIN_ACCESS_FLAG);
register_concmd("amx_deleteclanxp", "Cmd_ResetClanXP", ADMIN_ACCESS_FLAG);
register_concmd("amx_deleteallclanxp", "Cmd_ResetAllXP", ADMIN_ACCESS_FLAG);
register_clcmd("say /clan", "Cmd_ClanMenu");
register_clcmd("say /invite", "Cmd_Invite");
register_clcmd("say /myclanxp", "Cmd_MyXP");
register_clcmd("say /clanhelp", "Cmd_ClanHelp");
register_clcmd("say /clantop", "Cmd_ClanTop");
register_clcmd("say", "Handle_SayCommands");
register_event("DeathMsg", "Event_DeathMsg", "a");
register_logevent("Event_BombPlanted", 3, "2=Planted_The_Bomb");
register_logevent("Event_BombDefused", 3, "2=Defused_The_Bomb");
register_clcmd("SET_CLAN_NAME", "Handle_SetClanName");
register_clcmd("SET_RANK_NAME", "Handle_SetRankName");
g_vault_clans = nvault_open("clans_v10");
g_vault_ranks = nvault_open("clan_ranks_v10");
g_vault_xp = nvault_open("clan_xp_v10");
}
public plugin_end() {
nvault_close(g_vault_clans); nvault_close(g_vault_ranks); nvault_close(g_vault_xp);
}
public client_putinserver(id) {
get_user_authid(id, g_szAuthID[id], 34);
g_szPlayerClan[id][0] = 0; g_iPlayerRank[id] = 0; g_iMemberXP[id] = 0;
for(new i=1; i<=6; i++) formatex(g_szRankNames[id][i], 31, "Rank %d", i);
LoadClanData(id);
}
// --- LOGICA XP SI EVENIMENTE ---
public AddClanXP(id, iAmount) {
if(!is_user_connected(id) || !g_szPlayerClan[id][0]) return;
g_iMemberXP[id] += iAmount; SaveClanData(id);
new szK[64]; copy(szK, 63, g_szPlayerClan[id]);
new iT = nvault_get(g_vault_xp, szK);
static szT[16]; num_to_str(iT + iAmount, szT, 15); nvault_set(g_vault_xp, szK, szT);
}
public Event_DeathMsg() {
new killer = read_data(1);
new victim = read_data(2);
new headshot = read_data(3);
static szWeapon[24]; read_data(4, szWeapon, 23);
if(!killer || killer == victim || !is_user_connected(killer)) return;
if(containi(szWeapon, "knife") != -1) AddClanXP(killer, 5);
else if(headshot) AddClanXP(killer, 3);
else AddClanXP(killer, 1);
}
public Event_BombPlanted() {
new loguser[80], name[32]; read_logargv(0, loguser, 79); parse_loguser(loguser, name, 31);
new id = get_user_index(name); if(is_user_connected(id)) AddClanXP(id, 3);
}
public Event_BombDefused() {
new loguser[80], name[32]; read_logargv(0, loguser, 79); parse_loguser(loguser, name, 31);
new id = get_user_index(name); if(is_user_connected(id)) AddClanXP(id, 3);
}
// --- CHAT SI COMENZI ---
public Handle_SayCommands(id) {
static szArgs[192]; read_args(szArgs, 191); remove_quotes(szArgs);
if(containi(szArgs, "/c ") == 0) {
if(!g_szPlayerClan[id][0]) return PLUGIN_HANDLED;
static szChatMsg[192], szName[32]; get_user_name(id, szName, 31);
formatex(szChatMsg, 191, "^1[^3%s^1] ^4%s ^1: %s", g_szRankNames[id][g_iPlayerRank[id]], szName, szArgs[3]);
new players[32], num, target; get_players(players, num);
for(new i=0; i<num; i++) {
target = players[i];
if(is_user_connected(target) && equal(g_szPlayerClan[id], g_szPlayerClan[target]))
ChatColor(target, szChatMsg);
}
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
// --- CREATE CLAN ---
public Cmd_CreateClan(id) {
if(!(get_user_flags(id) & ADMIN_ACCESS_FLAG)) return PLUGIN_HANDLED;
new menu = menu_create("\r[WTFCS]\w Create Clan", "AdminCreate_Handler");
static sz1[64], sz2[64], szN[32];
if(g_iTargetOwner[id] && is_user_connected(g_iTargetOwner[id])) get_user_name(g_iTargetOwner[id], szN, 31); else copy(szN, 31, "Neselectat");
formatex(sz1, 63, "Owner: \y%s", szN);
formatex(sz2, 63, "Nume: \y%s", g_szTempClanName[id][0] ? g_szTempClanName[id] : "Nesetat");
menu_additem(menu, sz1, "1"); menu_additem(menu, sz2, "2");
menu_additem(menu, "\r[FINALIZEAZA]", "3");
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public AdminCreate_Handler(id, menu, item) {
if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; }
switch(item) {
case 0: {
new pMenu = menu_create("Alege Owner", "OwnerSelect_Handler");
new players[32], num, szN[32], szID[3]; get_players(players, num);
for(new i=0; i<num; i++) {
if(g_szPlayerClan[players[i]][0]) continue;
get_user_name(players[i], szN, 31); num_to_str(players[i], szID, 2);
menu_additem(pMenu, szN, szID);
}
menu_display(id, pMenu, 0);
}
case 1: client_cmd(id, "messagemode SET_CLAN_NAME");
case 2: {
new target = g_iTargetOwner[id];
if(!is_user_connected(target)) { ChatColor(id, "^4[ERR]^1 Jucator offline."); return PLUGIN_HANDLED; }
if(g_szPlayerClan[target][0]) { ChatColor(id, "^4[ERR]^1 Are deja clan."); return PLUGIN_HANDLED; }
if(!g_szTempClanName[id][0]) { ChatColor(id, "^4[ERR]^1 Seteaza numele!"); return PLUGIN_HANDLED; }
copy(g_szPlayerClan[target], 31, g_szTempClanName[id]);
g_iPlayerRank[target] = 6; SaveClanData(target);
ChatColor(0, "^4[CLAN]^1 Clan creat: ^3%s^1. Lider: ^4%n", g_szTempClanName[id], target);
}
}
menu_destroy(menu); return PLUGIN_HANDLED;
}
public OwnerSelect_Handler(id, menu, item) {
if(item != MENU_EXIT) {
new szD[3], _a, _c; menu_item_getinfo(menu, item, _a, szD, 2, _, _, _c);
g_iTargetOwner[id] = str_to_num(szD); Cmd_CreateClan(id);
}
menu_destroy(menu); return PLUGIN_HANDLED;
}
// --- MENIU CLAN ---
public Cmd_ClanMenu(id) {
if(!g_szPlayerClan[id][0]) { ChatColor(id, "^4[CLAN]^1 Nu ai clan."); return PLUGIN_HANDLED; }
new iTotalXP = nvault_get(g_vault_xp, g_szPlayerClan[id]);
static szTitle[128]; formatex(szTitle, 127, "\r[CLAN]\w %s^n\dXP Total: \y%d", g_szPlayerClan[id], iTotalXP);
new menu = menu_create(szTitle, "PlayerMenu_Handler");
menu_additem(menu, "Membri", "1");
if(g_iPlayerRank[id] == 6) {
menu_additem(menu, "Rankuri", "2");
menu_additem(menu, "Invita", "3");
} else menu_additem(menu, "Paraseste", "4");
menu_display(id, menu, 0); return PLUGIN_HANDLED;
}
public PlayerMenu_Handler(id, menu, item) {
if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; }
switch(item) {
case 0: ShowMembersMenu(id);
case 1: if(g_iPlayerRank[id] == 6) ShowRankEditMenu(id);
case 2: if(g_iPlayerRank[id] == 6) Cmd_Invite(id);
}
menu_destroy(menu); return PLUGIN_HANDLED;
}
public ShowMembersMenu(id) {
new menu = menu_create("Membri Clan", "MemberMgmt_Handler");
new players[32], num, szN[32], szID[3], szT[128]; get_players(players, num);
for(new i=0; i<num; i++) {
if(!equal(g_szPlayerClan[id], g_szPlayerClan[players[i]])) continue;
get_user_name(players[i], szN, 31); num_to_str(players[i], szID, 2);
formatex(szT, 127, "%s \d[%s] \r[%d XP]", szN, g_szRankNames[id][g_iPlayerRank[players[i]]], g_iMemberXP[players[i]]);
menu_additem(menu, szT, szID);
}
menu_display(id, menu, 0);
}
public MemberMgmt_Handler(id, menu, item) {
if(item != MENU_EXIT && g_iPlayerRank[id] == 6) {
new szD[3], _a, _c; menu_item_getinfo(menu, item, _a, szD, 2, _, _, _c);
new target = str_to_num(szD);
if(id == target) { ChatColor(id, "^4[CLAN]^1 Nu te poti edita pe tine."); return PLUGIN_HANDLED; }
g_iManagingMember[id] = target;
new pMenu = menu_create("Membru", "MemberOptions_Handler");
menu_additem(pMenu, "Rank", "1"); menu_additem(pMenu, "Kick", "2"); menu_display(id, pMenu, 0);
}
menu_destroy(menu); return PLUGIN_HANDLED;
}
public MemberOptions_Handler(id, menu, item) {
if(item == 0) {
new rMenu = menu_create("Alege Rank", "RankChange_Handler");
for(new i=1; i<=6; i++) {
new szI[2]; num_to_str(i, szI, 1);
menu_additem(rMenu, g_szRankNames[id][i], szI);
}
menu_display(id, rMenu, 0);
} else if(item == 1) {
new t = g_iManagingMember[id]; g_szPlayerClan[t][0] = 0; SaveClanData(t); ChatColor(t, "^4[CLAN]^1 Ai fost eliminat.");
}
menu_destroy(menu); return PLUGIN_HANDLED;
}
public RankChange_Handler(id, menu, item) {
if(item != MENU_EXIT) {
new szD[2], _a, _c; menu_item_getinfo(menu, item, _a, szD, 1, _, _, _c);
g_iPlayerRank[g_iManagingMember[id]] = str_to_num(szD);
SaveClanData(g_iManagingMember[id]); ChatColor(id, "^4[CLAN]^1 Rank actualizat.");
}
menu_destroy(menu); return PLUGIN_HANDLED;
}
// --- INVITE SI RANK EDIT ---
public Cmd_Invite(id) {
new menu = menu_create("Invita", "Invite_Handler");
new players[32], num, szN[32], szID[3]; get_players(players, num);
for(new i=0; i<num; i++) {
if(g_szPlayerClan[players[i]][0]) continue;
get_user_name(players[i], szN, 31); num_to_str(players[i], szID, 2); menu_additem(menu, szN, szID);
}
menu_display(id, menu, 0); return PLUGIN_HANDLED;
}
public Invite_Handler(id, menu, item) {
if(item != MENU_EXIT) {
new szD[3], _a, _c; menu_item_getinfo(menu, item, _a, szD, 2, _, _, _c);
new t = str_to_num(szD); g_iInviteSource[t] = id;
new iMenu = menu_create("Accepti invitatia?", "Accept_Handler");
menu_additem(iMenu, "Da", "1"); menu_additem(iMenu, "Nu", "2"); menu_display(t, iMenu, 0);
}
menu_destroy(menu); return PLUGIN_HANDLED;
}
public Accept_Handler(id, menu, item) {
if(item == 0) {
new s = g_iInviteSource[id];
if(is_user_connected(s)) {
copy(g_szPlayerClan[id], 31, g_szPlayerClan[s]); g_iPlayerRank[id] = 1;
for(new i=1; i<=6; i++) copy(g_szRankNames[id][i], 31, g_szRankNames[s][i]);
SaveClanData(id); ChatColor(id, "^4[CLAN]^1 Bine ai venit!");
}
}
menu_destroy(menu); return PLUGIN_HANDLED;
}
public ShowRankEditMenu(id) {
new menu = menu_create("Rankuri", "RankEdit_Handler");
for(new i=1; i<=6; i++) {
static szT[64]; formatex(szT, 63, "%s", g_szRankNames[id][i]);
static szI[2]; num_to_str(i, szI, 1); menu_additem(menu, szT, szI);
}
menu_display(id, menu, 0);
}
public RankEdit_Handler(id, menu, item) {
if(item != MENU_EXIT) { g_iEditingRank[id] = item+1; client_cmd(id, "messagemode SET_RANK_NAME"); }
menu_destroy(menu); return PLUGIN_HANDLED;
}
public Handle_SetRankName(id) {
static szN[32]; read_args(szN, 31); remove_quotes(szN); trim(szN);
if(szN[0]) {
for(new i=1; i<=32; i++) if(is_user_connected(i) && equal(g_szPlayerClan[id], g_szPlayerClan[i])) copy(g_szRankNames[i][g_iEditingRank[id]], 31, szN);
SaveRankNames(id);
}
ShowRankEditMenu(id); return PLUGIN_HANDLED;
}
// --- ADMIN TOOLS SI TOP ---
public Cmd_DeleteClan(id) {
if(!(get_user_flags(id) & ADMIN_ACCESS_FLAG)) return PLUGIN_HANDLED;
client_cmd(id, "messagemode DEL_CLAN_CMD");
register_clcmd("DEL_CLAN_CMD", "Handle_DelClan");
return PLUGIN_HANDLED;
}
public Handle_DelClan(id) {
static szC[32]; read_args(szC, 31); remove_quotes(szC); trim(szC);
if(!szC[0]) return PLUGIN_HANDLED;
nvault_remove(g_vault_xp, szC);
for(new i=1; i<=32; i++) if(is_user_connected(i) && equal(g_szPlayerClan[i], szC)) { g_szPlayerClan[i][0] = 0; SaveClanData(i); }
ChatColor(id, "^4[CLAN]^1 Sters."); return PLUGIN_HANDLED;
}
public Cmd_ClanTop(id) {
static szPath[128]; get_configsdir(szPath, 127);
add(szPath, 127, "/clan_top.txt");
if(!file_exists(szPath)) return PLUGIN_HANDLED;
static szFile[2048], szRows[1024]; new iFile = fopen(szPath, "rt"), iLen = 0;
while(!feof(iFile)) iLen += fgets(iFile, szFile[iLen], 2047-iLen);
fclose(iFile);
new iRLen = 0, players[32], num, target, iC = 0; static szF[10][32]; get_players(players, num);
for(new i = 0; i < num; i++) {
target = players[i]; if(!g_szPlayerClan[target][0]) continue;
new bool:bE = false; for(new j = 0; j < iC; j++) if(equal(g_szPlayerClan[target], szF[j])) { bE = true; break; }
if(!bE && iC < 10) {
copy(szF[iC], 31, g_szPlayerClan[target]);
new iX = nvault_get(g_vault_xp, szF[iC]);
iRLen += formatex(szRows[iRLen], 1023-iRLen, "<tr><td>%d</td><td>%s</td><td>%d</td></tr>", iC+1, szF[iC], iX);
iC++;
}
}
replace(szFile, 2047, "%CLAN_ROWS%", szRows[0] ? szRows : "<tr><td>-</td><td>Fara clanuri</td><td>0</td></tr>");
show_motd(id, szFile, "Top"); return PLUGIN_HANDLED;
}
// --- UTILS SI VAULT ---
public Cmd_ClanHelp(id) {
static szP[128]; get_configsdir(szP, 127); add(szP, 127, "/clan_help.txt");
if(file_exists(szP)) show_motd(id, szP, "Help");
return PLUGIN_HANDLED;
}
public Cmd_MyXP(id) { ChatColor(id, "^4[CLAN]^1 XP: ^3%d", g_iMemberXP[id]); return PLUGIN_HANDLED; }
public Cmd_ResetClanXP(id, l, c) {
if(!cmd_access(id, l, c, 2)) return PLUGIN_HANDLED;
static szC[32]; read_argv(1, szC, 31); nvault_set(g_vault_xp, szC, "0"); return PLUGIN_HANDLED;
}
public Cmd_ResetAllXP(id, l, c) {
if(!cmd_access(id, l, c, 1)) return PLUGIN_HANDLED;
nvault_prune(g_vault_xp, 0, get_systime()+1); return PLUGIN_HANDLED;
}
public Handle_SetClanName(id) {
read_args(g_szTempClanName[id], 31); remove_quotes(g_szTempClanName[id]); trim(g_szTempClanName[id]);
Cmd_CreateClan(id); return PLUGIN_HANDLED;
}
public SaveClanData(id) {
static szD[128]; formatex(szD, 127, "^"%s^" %d %d", g_szPlayerClan[id], g_iPlayerRank[id], g_iMemberXP[id]);
nvault_set(g_vault_clans, g_szAuthID[id], szD);
}
public LoadClanData(id) {
static szD[128], szC[32], szR[3], szX[10];
if(nvault_get(g_vault_clans, g_szAuthID[id], szD, 127)) {
parse(szD, szC, 31, szR, 2, szX, 9);
copy(g_szPlayerClan[id], 31, szC); g_iPlayerRank[id] = str_to_num(szR); g_iMemberXP[id] = str_to_num(szX);
LoadRankNames(id);
}
}
public SaveRankNames(id) {
static szK[64], szD[256]; formatex(szK, 63, "RN_%s", g_szPlayerClan[id]);
new l = 0; for(new i=1; i<=6; i++) l += formatex(szD[l], 255-l, "^"%s^" ", g_szRankNames[id][i]);
nvault_set(g_vault_ranks, szK, szD);
}
public LoadRankNames(id) {
static szK[64], szD[256]; formatex(szK, 63, "RN_%s", g_szPlayerClan[id]);
if(nvault_get(g_vault_ranks, szK, szD, 255)) parse(szD, g_szRankNames[id][1], 31, g_szRankNames[id][2], 31, g_szRankNames[id][3], 31, g_szRankNames[id][4], 31, g_szRankNames[id][5], 31, g_szRankNames[id][6], 31);
}
stock ChatColor(id, const msg[], any:...) {
static szM[191]; vformat(szM, 190, msg, 3);
static m_id; if(!m_id) m_id = get_user_msgid("SayText");
message_begin(id ? MSG_ONE_UNRELIABLE : MSG_ALL, m_id, _, id);
write_byte(id ? id : 1); write_string(szM); message_end();
}
clan_top.txt [configs/]:
Code:
<html>
<head>
<style type="text/css">
body {
background-color: #000000;
font-family: Tahoma, Geneva, sans-serif;
color: #FFFFFF;
margin: 15px;
}
h2 {
color: #FF8C00;
text-align: center;
text-transform: uppercase;
border-bottom: 1px solid #333;
padding-bottom: 10px;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 10px;
background-color: #111;
}
th {
background-color: #222;
color: #FFD700;
padding: 10px;
border: 1px solid #333;
font-size: 14px;
}
td {
padding: 8px;
border: 1px solid #222;
text-align: center;
font-size: 13px;
}
tr:nth-child(even) {
background-color: #161616;
}
.footer {
text-align: center;
margin-top: 20px;
font-size: 10px;
color: #555;
}
</style>
</head>
<body>
<h2>Top 10 Clanuri - WTFCS</h2>
<table>
<thead>
<tr>
<th>Loc</th>
<th>Nume Clan</th>
<th>XP Colectat</th>
</tr>
</thead>
<tbody>
%CLAN_ROWS%
</tbody>
</table>
<div class="footer">
Clasamentul se actualizeaza in timp real pe baza activitatii jucatorilor online.
</div>
</body>
</html>
clan_help.txt [configs/]:
Code:
<html>
<head>
<style type="text/css">
body {
background-color: #000000;
font-family: Verdana, Geneva, sans-serif;
color: #FFFFFF;
margin: 20px;
}
h1 { color: #FFD700; text-align: center; border-bottom: 2px solid #FFD700; }
h2 { color: #4CAF50; border-left: 5px solid #4CAF50; padding-left: 10px; }
.cmd { color: #00FF00; font-weight: bold; }
.desc { color: #CCCCCC; margin-bottom: 10px; }
table { width: 100%; border-collapse: collapse; margin-top: 15px; }
th, td { border: 1px solid #444; padding: 8px; text-align: left; }
th { background-color: #333; color: #FFD700; }
</style>
</head>
<body>
<h1>Sistemul de Clanuri - WTFCS</h1>
<h2>Comenzi Jucatori</h2>
<ul>
<li><span class="cmd">/clan</span> - Deschide meniul principal al clanului (XP, Membri, Management).</li>
<li><span class="cmd">/c <mesaj></span> - Trimite un mesaj privat vizibil doar membrilor din clanul tau.</li>
<li><span class="cmd">/myclanxp</span> - Vezi cat XP ai contribuit tu personal la clan.</li>
<li><span class="cmd">/clantop</span> - Afiseaza topul celor mai puternice clanuri.</li>
<li><span class="cmd">/invite</span> - (Doar Lider) Invita un jucator online in clanul tau.</li>
</ul>
<h2>Sistemul de Clan XP</h2>
<p>Ajuta-ti clanul sa urce in top prin activitatea ta pe server:</p>
<table>
<tr>
<th>Actiune</th>
<th>Recompensa</th>
</tr>
<tr>
<td>Kill normal</td>
<td>+1 Clan XP</td>
</tr>
<tr>
<td>Headshot</td>
<td>+3 Clan XP</td>
</tr>
<tr>
<td>Kill cu Cutitul</td>
<td>+5 Clan XP</td>
</tr>
<tr>
<td>Plantare/Dezamorsare Bomba</td>
<td>+3 Clan XP</td>
</tr>
</table>
<h2>Ierarhie (Rankuri)</h2>
<p>Fiecare clan are 6 rank-uri. Liderul (Rank 6) are control total asupra numelor rank-urilor si membrilor.</p>
<p align="center" style="color: #666; font-size: 10px;">Plugin creat special pentru comunitatea WTFCS</p>
</body>
</html>
Nume: Clan System+
Versiune: 0.5
Link oficial: -
Instalare:
1. Fisierul clan_system.sma il puneti in addons/amxmodx/scripting
2. Fisierul clan_system.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:
Code:
clan_system.amxx
5. Creati in /cstrike/addons/amxmodx/configs, fisierul clan_help.txt si puneti codul de mai sus
Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg):
Comenzi administrative (se tasteaza in consola si trebuie sa fiti administrator):
/createclan - Deschide meniul de creație. Necesită selectarea unui Owner (care trebuie să fie online și fără alt clan) și setarea unui nume.
/clandelete - Permite ștergerea definitivă a unui clan prin introducerea numelui acestuia.
amx_deleteclanxp <nume> - (Consolă) Resetează experiența unui anumit clan la 0.
amx_deleteallclanxp - (Consolă) Șterge baza de date de XP pentru toate clanurile de pe server.
Comenzi publice (se tasteaza in joc prin apasarea tastei Y):
/clan - Deschide meniul principal. Aici poți vedea XP-ul total, lista membrilor online și opțiunile de administrare (dacă ești Lider).
/c <mesaj> - Chat privat. Mesajul va apărea sub forma: [NumeRank] Nume : mesaj și va fi văzut doar de colegii de clan.
/clantop - Afișează o fereastră (MOTD) cu cele mai bune 10 clanuri de pe server în funcție de XP.
/myclanxp - Îți arată cât de mult ai contribuit tu personal la progresul clanului tău.
/clanhelp - Deschide un manual de utilizare (din clan_help.txt).
/invite - Deschide meniul de invitații (disponibil doar pentru Rank 6).
Module necesare (se sterge ; din fata modulului de mai jos; acestea le gasiti in fisierul amxmodx\configs\modules.ini):
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <nvault>
Imagini:
Pentru buguri si sugestii, va rog sa lasati un reply.






