Plugin Cerut: plugin misiuni furien
Descriere (adica ce face el mai exact):
Serverul ruleaza (HLDS/ReHLDS): rehlds
Versiune AMX Mod X: 1.8.2
Modul Serverului: furien remade
Imagini.
Cerere plugin misiuni
Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com
Forum rules
Accesează link-ul pentru a putea vedea regulile forumului
Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Accesează link-ul pentru a putea vedea regulile forumului
Daca doriti sa vi se modifice un plugin, va rugam postati aici .
- gaNNNja
- Utilizator neserios (tepar)
- Posts: 152
- Joined: 26 Jun 2014, 17:02
- Detinator Steam: Da
- CS Status: promns.ro
- Detinator server CS: promns.ro
- SteamID: Gollum_
- Reputatie: Utilizator neserios (tepar)
- Fond eXtream: 0
- Location: Bucuresti
- Has thanked: 3 times
- Been thanked: 5 times
- Contact:
Acel plugin nu este integrat în modul de baza . Este un plugin separat care nu are treaba cu modul
- cyby
- Scripter eXtreamCS
- Posts: 1777
- Joined: 16 Jul 2011, 21:46
- Detinator Steam: Da
- Detinator server CS: Da
- Reputatie: Scripter eXtreamCS
Fost Moderator ajutator - Has thanked: 146 times
- Been thanked: 396 times
https://forums.alliedmods.net/showthread.php?t=149342
https://forums.alliedmods.net/showthread.php?p=1544166
https://forums.alliedmods.net/showthread.php?p=1544166
93.114.82.17:27015 - Monster Invasion CO-OP Mod
- -ToTo-
- Membru, skill +2
- Posts: 501
- Joined: 30 Jul 2016, 21:28
- Detinator Steam: Da
- CS Status: Muncă
- SteamID: id/totooffices/
- Fond eXtream: 0
- Location: Botosani
- Has thanked: 10 times
- Been thanked: 5 times
Ia legatura cu YONTU daca il mai are, iam dat acu cateva luni sa mi-l faca, dar am inceput munca si nu am avut cum lua legatura cu el, cu ocazia asta imi cer si scuze ca l-am pus sa mi-l faca si nu iam mai dat nici un semn, dar pedeoparte am si uitat. 100lei parca era pluginu.
Aici era in testare, trebuia sa fie cu arme cso pentru anti-furieni si puteri pentru furieni ceva de genu din cate imi aduc aminte special pentru modu ala a lui cyby, si multe altele, dar nu imi mai aduc aminte bine.
Aici era in testare, trebuia sa fie cu arme cso pentru anti-furieni si puteri pentru furieni ceva de genu din cate imi aduc aminte special pentru modu ala a lui cyby, si multe altele, dar nu imi mai aduc aminte bine.
Furien Remade Level || Class || Power || Quest || Event
IP : 188.212.100.219:27015
IP : 188.212.100.219:27015
- YONTU
- Scripter eXtreamCS
- Posts: 2466
- Joined: 10 May 2013, 14:25
- Detinator Steam: Nu
- CS Status: Everyone is looking at ur shoes
- Reputatie: Moderator ajutator
Fost scripter eXtreamCS - Location: Gura Humorului
- Has thanked: 256 times
- Been thanked: 288 times
- Contact:
- misiuni.sma | Afiseaza codul
uite aici ai pluginul. l am lasat exact asa dupa ultima modificare care a avut loc
Code: Select all
#define ULTIMA_MODIFICARE "10.02.2019"
o sa mi fac timp si o sa mi postez toate pluginurile mele inclusiv addonsurile alea de biohazard pe care mi le ati cerut pe privat
edit: comenzi:
/misiune
/misiune help
/misiune alege
ca sa modifici valorile (numerele intregi) ai aici array-urile:
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș
Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș
Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114
Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
- gaNNNja
- Utilizator neserios (tepar)
- Posts: 152
- Joined: 26 Jun 2014, 17:02
- Detinator Steam: Da
- CS Status: promns.ro
- Detinator server CS: promns.ro
- SteamID: Gollum_
- Reputatie: Utilizator neserios (tepar)
- Fond eXtream: 0
- Location: Bucuresti
- Has thanked: 3 times
- Been thanked: 5 times
- Contact:
Mulțumesc frumos. Se poate inchide
- CatalinACS
- Membru, skill 0
- Posts: 86
- Joined: 06 Jun 2017, 13:29
- Detinator Steam: Da
- Detinator server CS: FURY.ALPHACS.RO
- SteamID: CatalinACS
- Fond eXtream: 0
- Been thanked: 1 time
- Contact:
nu se poate compila si il vreau si eu. poate rezolva cineva?YONTU wrote: ↑24 Dec 2019, 10:13
- misiuni.sma | Afiseaza codul
uite aici ai pluginul. l am lasat exact asa dupa ultima modificare care a avut loc=))))))Code: Select all
#define ULTIMA_MODIFICARE "10.02.2019"
o sa mi fac timp si o sa mi postez toate pluginurile mele inclusiv addonsurile alea de biohazard pe care mi le ati cerut pe privat
edit: comenzi:
/misiune
/misiune help
/misiune alege
ca sa modifici valorile (numerele intregi) ai aici array-urile:
- DaNNe.
- Fost moderator
- Posts: 2811
- Joined: 08 Nov 2013, 20:43
- Detinator Steam: Da
- CS Status: Activitate scăzută
- SteamID: /id/FurienMaster
- Reputatie: Nick anterior: DnD. Gold, Emrys
0.5/3
Fost moderator ajutator
Fost Membru Club eXtreamCS (doua luni) - Has thanked: 244 times
- Been thanked: 129 times
- Contact:
- mariusexeqt
- Utilizator neserios (tepar)
- Posts: 199
- Joined: 01 Jan 2020, 22:55
- Detinator Steam: Da
- Fond eXtream: 0
- Has thanked: 4 times
- Been thanked: 4 times
- Contact:
- levin
- Scripter eXtreamCS
- Posts: 3844
- Joined: 24 Aug 2011, 12:24
- Detinator Steam: Da
- CS Status: ♅
- Detinator server CS: ☯∴
- SteamID: riseofevo
- Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy - Location: ҳ̸Ҳ̸ҳ
- Discord: devilclass
- Has thanked: 36 times
- Been thanked: 594 times
- Contact:
Code: Select all
/*
LICENTA
DETALII PLUGIN:
System Misiuni pentru Furien si Anti-Furieni. Sa fie cate o misiune random activa la fiecare echipa pe toata durata mapei.
Cand scrii "/misiune" sa arate ce misiune se desfasoara in acel moment.
Cand scrii "misiune alege" sa pot alege eu o misiune
Cine termina primul aceste misiuni sa scrie in chat:
(Anti-Furien) Jucatoru Ionica a indeplinit misiunea si a primit 120 dolari si hook.
(Furien) Jucatoru Ionica a indeplinit misiunea si a primit 120 dolari si teleport.
( acesti dolari sa fie salavati ca baza nu salveaza :)) )
premiile dureaza toata harta
#Anti-Furieni
Omoara 10 Furieni prin HeadShot.
Ucide 6 furieni cu lama
Dezamorseaza 8 bombe.
Omoara 30 furieni.
#Furieni
Foloseste 140$ intr-o runda.
Fa 35 kill-uri cu knife-ul.
Planteaza 10 bombe.
Omoara 30 anti-furieni.
Acestea sa se activeze cand sunt peste 3 playeri.
Meniu statisticile tale:
1. Misiune curenta: X
2. Killurile tale: (+ procentaj) (x% completat)
3. Bombe plantate: (+ procentaj)
4. Bombe dezamorsate
CE TREBUIE SA MAI FAC:
- modt despre misiuni
- daca s-a incheiat o misiune iar castigatorul trece de la o echipa la cealalta ce se intampla?
- de afisat mesaj hud cu castigatorul imediat dupa ce a finalizat misiunea (o singura data)
- cand dam premiul la castigator sa verificam daca e conectat si in viata
- de adaugat invartire ecran la castigator
- cvar-uri
- progresul facut intr-o runda (de ex. tre sa fac 10 killuri, iar eu am facut 3 => arat procentaj)
- bug: misiune castigata dar am ales alta misiune => mesajele
DACA APAR ERORI:
- mutam maxim pe static si il trecem prin referinta
- restart la pc -> memorie volatila
- de verifcat tasku-ul task_anunta_castigator() cand misiunea la t este prima (de verificat de mai multe ori)
*/
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <csx>
#pragma compress 1
#define PLUGIN_NAME "[AMXX] Misiuni"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"
#define ULTIMA_MODIFICARE "10.02.2019"
// --------------------------------------------
// ------------- DE EDITAT ---------------
// --------------------------------------------
#define TAG "[AMXX]"
#define MIN_JUCATORI 2
#define ACCES_ADMIN ADMIN_IMMUNITY
// --------------------------------------------
// ------------- DE EDITAT ---------------
// --------------------------------------------
/*
se_desfasoara:
1 = misiunea se desfasoara
0 = misiunea nu se desfasoara
*/
new misiune_ct, misiune_t, bool:se_desfasoara, bool:misiune_completa_t, bool:misiune_completa_ct, misiune_aleasa_ct, misiune_aleasa_t, castigator_t, castigator_ct, jucatori;
new max_players, g_sync_hudmessage, g_sync_hudmessage2;
new bmb_plant[33], bmb_def[33], nume_admin[33], kills_t[33], kills_ct[33], runde[33], text_potentiali[512], text_misiune[128],
nume_castigator_ct[32], nume_castigator_t[32];
enum datas_
{
str[32],
info
};
new const misiuni_t[][datas_] =
{
{ "Rezista # de runde fara sa mori", 3 },
{ "Ucide # anti-furieni cu cutitul", 4 },
{ "Planteaza # bombe", 2 },
{ "Omoara # anti-furieni", 10 }
};
new const misiuni_ct[][datas_] =
{
{ "Omoara # furieni prin headshot", 4 },
{ "Ucide # furieni cu lama", 2 },
{ "Dezamorseaza # bombe", 8 },
{ "Omoara # furieni", 3 }
};
// 93.114.82.92:27015
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
register_cvar("misiuni_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
set_cvar_string("misiuni_", PLUGIN_VERSION);
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPre", 1);
register_logevent("round_end", 2, "1=Round_End");
register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in");
register_clcmd("say", "cmd_say");
register_clcmd("say_team", "cmd_say");
se_desfasoara = false;
misiune_t = -1;
misiune_ct = -1;
misiune_aleasa_t = -1;
misiune_aleasa_ct = -1;
max_players = get_maxplayers();
// alegem misiunea imediat dupa ce s-a dat restart la server/schimbat harta
set_task(5.0, "task_alege_misiune");
g_sync_hudmessage = CreateHudSyncObj();
g_sync_hudmessage2 = CreateHudSyncObj();
}
public client_putinserver(id)
{
jucatori++;
set_task(3.0, "task_verifica_inceput");
}
public client_disconnect(id)
{
jucatori--;
set_task(3.0, "task_verifica_inceput");
}
public task_verifica_inceput()
{
se_desfasoara = (jucatori >= MIN_JUCATORI) ? true : false;
if(se_desfasoara)
{
/*
Misiune in desfasurare...
Fii primul care termina misiunea
si vei fi rasplatit cu un premiu
*/
new jucatori2[32], numar = 0, id, i;
if(!misiune_completa_ct)
{
if(0 <= misiune_ct <= sizeof(misiuni_ct))
{
get_players(jucatori2, numar, "e", "CT");
for(i = 0; i < numar; i++)
{
id = jucatori2[i];
if(!is_user_connected(id)) continue;
set_hudmessage(255, 255, 255, 0.2, 0.40, 2, _, 2.0, _, _);
ShowSyncHudMsg(id, g_sync_hudmessage2, "Misiune in desfasurare...^n^nFii primul care termina misiunea^nsi vei fi rasplatit cu un premiu", MIN_JUCATORI - jucatori);
}
}
return;
}
if(!misiune_completa_t)
{
if(0 <= misiune_t <= sizeof(misiuni_t))
{
get_players(jucatori2, numar, "e", "TERRORIST");
for(i = 0; i < numar; i++)
{
id = jucatori2[i];
if(!is_user_connected(id)) continue;
set_hudmessage(255, 255, 255, 0.2, 0.40, 2, _, 2.0, _, _);
ShowSyncHudMsg(id, g_sync_hudmessage2, "Misiune in desfasurare...^n^nFii primul care termina misiunea^nsi vei fi rasplatit cu un premiu", MIN_JUCATORI - jucatori);
}
}
return;
}
}
}
// sa prevenim aparitia bugurilor la noile misiuni
public event_textmsg()
{
if(misiune_aleasa_ct != -1)
{
arrayset(bmb_def, 0, charsmax(bmb_def));
arrayset(kills_ct, 0, charsmax(kills_ct));
castigator_ct = -1;
misiune_completa_ct = false;
}
if(misiune_aleasa_t != -1)
{
arrayset(bmb_plant, 0, charsmax(bmb_plant));
arrayset(kills_t, 0, charsmax(kills_t));
arrayset(runde, 0, charsmax(runde));
castigator_t = -1;
misiune_completa_t = false;
}
//reseteaza_tot();
}
// s-ar putea sa apara bug aici
// neconcludent
public task_alege_misiune()
{
if(misiune_aleasa_t == -1) if(misiune_t == -1) misiune_t = random_num(0, charsmax(misiuni_t));
if(misiune_aleasa_t == -1) if(misiune_ct == -1) misiune_ct = random_num(0, charsmax(misiuni_ct));
reseteaza_tot();
}
public fw_PlayerSpawnPre(id)
{
if(!is_user_alive(id)) return HAM_HANDLED;
if(misiune_aleasa_ct != -1)
{
misiune_ct = misiune_aleasa_ct;
misiune_aleasa_ct = -1;
task_alege_misiune();
if(cs_get_user_team(id) == CS_TEAM_CT)
{
format_misiune_ct(misiune_ct, text_misiune);
ColorChat(id, "!4%s!1 O NOUA MISIUNE A FOST ALEASA PENTRU VOI.", TAG);
ColorChat(id, "!4%s!1 Adminul!3 %s!1 a ales misiunea!3 %s", TAG, nume_admin, text_misiune);
}
return HAM_HANDLED;
}
if(misiune_aleasa_t != -1)
{
misiune_t = misiune_aleasa_t;
misiune_aleasa_t = -1;
task_alege_misiune();
if(cs_get_user_team(id) == CS_TEAM_T)
{
format_misiune_t(misiune_t, text_misiune);
ColorChat(id, "!4%s!1 O NOUA MISIUNE A FOST ALEASA PENTRU VOI.", TAG);
ColorChat(id, "!4%s!1 Adminul!3 %s!1 a ales misiunea!3 %s", TAG, nume_admin, text_misiune);
}
return HAM_HANDLED;
}
return HAM_IGNORED;
}
/*
Pot fi mai multi jucatori care au supravietuit x runde,
asadar, pentru a alege un castigator, alegem unul random
din toti cei care au supravietuit.
*/
public round_end()
{
if(se_desfasoara && misiune_t == 0 && !misiune_completa_t)
{
new players[32], numar, i, id, total = 0, id_supravietuitori[32];
cauta_id_jucatori(players, numar);
for(i = 0; i < numar; i++)
{
id = players[i];
if(!is_user_connected(id)) continue;
if(cs_get_user_team(id) != CS_TEAM_T) continue;
if(is_user_alive(id))
{
if(++runde[id] == misiuni_t[misiune_t][info])
{
// numaram toti jucatorii care au supravietuti x runde si le retinem id-ul
id_supravietuitori[total++] = id;
misiune_completa_t = true;
}
}
else runde[id] = 0;
}
if(misiune_completa_t)
{
// am gasit id-ul castigatorului, astfel putem sa ii dam un premiu pe restul rundelor
castigator_t = id_supravietuitori[random_num(0, total-1)];
get_user_name(castigator_t, nume_castigator_t, charsmax(nume_castigator_t));
set_task(1.0, "task_anunta_castigator");
}
}
}
public task_anunta_castigator()
{
new players[32], numar = 0, i, id, nume_castigator[32];
if(misiune_completa_ct)
{
format_misiune_ct(misiune_ct, text_misiune);
get_players(players, numar, "e", "CT");
for(i = 0; i < numar; i++)
{
id = players[i];
if(!is_user_connected(id)) continue;
get_user_name(id, nume_castigator, charsmax(nume_castigator));
if(id == castigator_ct && equal(nume_castigator_ct, nume_castigator))
{
ColorChat(id, "!4%s!1 FELICITARI!4 %s!1!!! Ai terminat primul misiunea!3 %s!1.", TAG, nume_castigator, text_misiune);
set_task(0.25, "adauga_efecte", id, _, _, "a", 12);
}
else ColorChat(id, "!4%s!1 Jucatorul!4 %s!1 a terminat primul misiunea!3 %s!1.", TAG, nume_castigator_ct, text_misiune);
}
return;
}
if(misiune_completa_t)
{
format_misiune_t(misiune_t, text_misiune);
get_players(players, numar, "e", "TERRORIST");
for(i = 0; i < numar; i++)
{
id = players[i];
if(!is_user_connected(id)) continue;
get_user_name(id, nume_castigator, charsmax(nume_castigator));
if(id == castigator_t && equal(nume_castigator_t, nume_castigator))
{
ColorChat(id, "!4%s!1 FELICITARI!4 %s!1!!! Ai terminat primul misiunea!3 %s!1.", TAG, nume_castigator, text_misiune);
set_task(0.25, "adauga_efecte", id, _, _, "a", 12);
}
else ColorChat(id, "!4%s!1 Jucatorul!4 %s!1 a terminat primul misiunea!3 %s!1.", TAG, nume_castigator_t, text_misiune);
}
}
}
public adauga_efecte(castigator)
{
if(!is_user_connected(castigator)) return;
static g_msg_screenshake = 0;
if(!g_msg_screenshake) g_msg_screenshake = get_user_msgid("ScreenShake");
message_begin(MSG_ONE, g_msg_screenshake, _, castigator);
write_short(1<<14);
write_short(1<<14);
write_short(1<<14);
message_end();
static g_msg_screenfade = 0;
if(!g_msg_screenfade) g_msg_screenfade = get_user_msgid("ScreenFade");
message_begin(MSG_ONE_UNRELIABLE, g_msg_screenfade, _, castigator);
write_short(1<<10);
write_short(1<<10);
write_short(1<<12);
write_byte(random_num(0, 255));
write_byte(random_num(0, 255));
write_byte(random_num(0, 255));
write_byte(100);
message_end();
}
public cmd_say(id)
{
static chat[192];
read_args(chat, charsmax(chat));
remove_quotes(chat);
if(equali(chat, "")) return PLUGIN_HANDLED_MAIN;
new CsTeams:echipa = cs_get_user_team(id);
if(echipa == CS_TEAM_CT) if(misiune_ct != -1) format_misiune_ct(misiune_aleasa_ct != -1 ? misiune_aleasa_ct : misiune_ct, text_misiune);
else if(misiune_t != -1) format_misiune_t(misiune_aleasa_t != -1 ? misiune_aleasa_t : misiune_t, text_misiune);
new comanda[32];
strbreak(chat, comanda, charsmax(comanda), chat, charsmax(chat));
if(equali(comanda, "misiune", 7) || equali(comanda, "/misiune", 7))
{
if(equali(chat[0], "help"))
{
meniu_statistici(id);
return PLUGIN_CONTINUE;
}
if(equali(chat[0], "alege"))
{
if(!(get_user_flags(id) & ACCES_ADMIN))
{
ColorChat(id, "!4%s!1 Doar adminii au dreptul sa aleaga o misiune.", TAG);
return PLUGIN_CONTINUE;
}
if(misiune_aleasa_ct != -1 || misiune_aleasa_t != -1)
{
ColorChat(id, "!4%s!3 A fost aleasa deja o misiune de catre adminul!1 %s!3. Te rugam sa astepti pana la urmatorul spawn.", TAG, nume_admin);
ColorChat(id, "!4%s!1 Urmatoarea misiune:!3 %s", TAG, text_misiune);
}
else
{
static menu, text[128], tasta[2], i;
if(echipa == CS_TEAM_CT)
{
formatex(text, charsmax(text), "\wAlege o misiune^nMisiunea curenta:\y %s", text_misiune);
menu = menu_create(text, "alege_handler");
for(i = 0; i < sizeof misiuni_ct; i++)
{
format_misiune_ct(i, text_misiune);
formatex(text, charsmax(text), "%s%s", (i == misiune_ct) ? "\d" : "", text_misiune);
tasta[0] = i;
tasta[1] = 0;
menu_additem(menu, text, tasta);
}
}
else
{
formatex(text, charsmax(text), "\wAlege o misiune^nMisiunea curenta:\y %s", text_misiune);
menu = menu_create(text, "alege_handler");
for(i = 0; i < sizeof misiuni_t; i++)
{
format_misiune_t(i, text_misiune);
formatex(text, charsmax(text), "%s%s", (i == misiune_t) ? "\d" : "", text_misiune);
tasta[0] = i;
tasta[1] = 0;
menu_additem(menu, text, tasta);
}
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
return PLUGIN_CONTINUE;
}
if(se_desfasoara)
{
if(echipa == CS_TEAM_CT)
{
// COMPLETA
if(misiune_completa_ct)
{
ColorChat(id, "!4%s!1 Misiunea!3 %s!1 a fost castigata de!4 %s!1.", TAG, text_misiune, nume_castigator_ct);
ColorChat(id, "!4%s!1 Harta urmatoare alegem o noua misiune. Fii alaturi de noi.", TAG);
}
else
{
// IN DESFASURARE
ColorChat(id, "!4%s!1 In acest moment se desfasoara misiunea:!3 %s!1 (!4%d!1).", TAG, text_misiune, misiune_ct);
if(calculeaza(id, CS_TEAM_CT, misiune_ct, 1, text_potentiali) == 1.0) // 1.0 succes
ColorChat(id, "!4%s!1 Potentiali castigatori:!3 %s", TAG, text_potentiali);
set_hudmessage(42, 255, 42, 0.1, 0.6, 2, _, 2.0, _, _);
ShowSyncHudMsg(id, g_sync_hudmessage, "Misiunea numarul %d^n^nDescriere: %s", misiune_ct, text_misiune);
}
}
else
{
// COMPLETA
if(misiune_completa_t)
{
ColorChat(id, "!4%s!1 Misiunea!3 %s!1 a fost castigata de!4 %s!1.", TAG, text_misiune, nume_castigator_t);
ColorChat(id, "!4%s!1 Harta urmatoare alegem o noua misiune. Fii alaturi de noi.", TAG);
}
else
{
// IN DESFASURARE
ColorChat(id, "!4%s!1 In acest moment se desfasoara misiunea:!3 %s!1 (!4%d!1).", TAG, text_misiune, misiune_t);
if(calculeaza(id, CS_TEAM_T, misiune_t, 1, text_potentiali) == 1.0) ColorChat(id, "!4%s!1 Potentiali castigatori:!3 %s", TAG, text_potentiali);
set_hudmessage(42, 255, 42, 0.1, 0.6, 2, _, 2.0, _, _);
ShowSyncHudMsg(id, g_sync_hudmessage, "Misiunea numarul %d^n^nDescriere: %s", misiune_t, text_misiune);
}
}
meniu_statistici(id);
return PLUGIN_CONTINUE;
}
else
{
if(echipa == CS_TEAM_CT)
{
// COMPLETA
if(misiune_completa_ct)
{
ColorChat(id, "!4%s!1 Misiunea!3 %s!1 a fost castigata de!4 %s!1.", TAG, text_misiune, nume_castigator_ct);
ColorChat(id, "!4%s!1 Harta urmatoare alegem o noua misiune. Fii alaturi de noi.", TAG);
}
else
{
// SUSPENDATA
if(misiune_ct != -1)
{
ColorChat(id, "!4%s!1 Misiunea!3 '%s'!1 a fost suspendata.", TAG, text_misiune);
if(MIN_JUCATORI - jucatori > 0)
{
ColorChat(id, "!4%s!1 Nu sunt suficienti jucatori pe server pentru a continua.", TAG);
set_hudmessage(42, 255, 42, 0.1, 0.60, 0, _, 2.0, _, _);
ShowSyncHudMsg(id, g_sync_hudmessage, "JUCATORI NECESARI: inca %d", MIN_JUCATORI - jucatori);
}
}
else
{
// NU EXISTA MISIUNE
ColorChat(id, "!4%s!1 Momentan nu ruleaza nicio misiune pe server.", TAG);
return PLUGIN_CONTINUE;
}
}
}
else
{
// COMPLETA
if(misiune_completa_t)
{
ColorChat(id, "!4%s!1 Misiunea!3 %s!1 a fost castigata de!4 %s!1.", TAG, text_misiune, nume_castigator_t);
ColorChat(id, "!4%s!1 Harta urmatoare alegem o noua misiune. Fii alaturi de noi.", TAG);
}
else
{
// SUSPENDATA
if(misiune_t != -1)
{
ColorChat(id, "!4%s!1 Misiunea!3 '%s'!1 a fost suspendata.", TAG, text_misiune);
if(MIN_JUCATORI - jucatori > 0)
{
ColorChat(id, "!4%s!1 Nu sunt suficienti jucatori pe server pentru a continua. Necesari:!4 %d", TAG, MIN_JUCATORI - jucatori);
set_hudmessage(42, 255, 42, 0.1, 0.60, 0, _, 2.0, _, _);
ShowSyncHudMsg(id, g_sync_hudmessage, "JUCATORI NECESARI: inca %d", MIN_JUCATORI - jucatori);
}
}
else
{
// NU EXISTA MISIUNE
ColorChat(id, "!4%s!1 Momentan nu ruleaza nicio misiune pe server.", TAG);
return PLUGIN_CONTINUE;
}
}
}
meniu_statistici(id);
return PLUGIN_CONTINUE;
}
}
return PLUGIN_CONTINUE;
}
/*
Status misiune:
COMPLETA
SUSPENDATA
IN DESFASURARE
*/
public meniu_statistici(id)
{
new CsTeams:echipa = cs_get_user_team(id);
static menu, text[128], Float:progres;
menu = menu_create("\rStatisticile mele", "statistici_handler");
progres = 0.0;
if(echipa == CS_TEAM_CT)
{
format_misiune_ct(misiune_ct, text_misiune);
formatex(text, charsmax(text), "Misiune curenta: %s", text_misiune);
menu_additem(menu, text, "1");
if(!misiune_completa_ct)
{
if(misiune_ct != -1 && se_desfasoara) formatex(text, charsmax(text), "Status misiune: \yIN DESFASURARE");
else formatex(text, charsmax(text), "Status misiune: \dSUSPENDATA");
menu_additem(menu, text, "2");
switch(misiune_ct)
{
case 0:
{
progres = (kills_ct[id] * 100.0)/float(misiuni_ct[misiune_ct][info]);
formatex(text, charsmax(text), "Progresul tau:\r %.1f%%", progres);
menu_additem(menu, text, "3");
formatex(text, charsmax(text), "Kill-uri facute:\r %d/%d", kills_ct[id], misiuni_ct[misiune_ct][info]);
menu_additem(menu, text, "4");
}
case 1:
{
progres = (kills_ct[id] * 100.0)/float(misiuni_ct[misiune_ct][info]);
formatex(text, charsmax(text), "Progresul tau:\r %.1f%%", progres);
menu_additem(menu, text, "3");
formatex(text, charsmax(text), "Kill-uri facute:\r %d/%d", kills_ct[id], misiuni_ct[misiune_ct][info]);
menu_additem(menu, text, "4");
}
case 2:
{
progres = (bmb_def[id] * 100.0)/float(misiuni_ct[misiune_ct][info]);
formatex(text, charsmax(text), "Progresul tau:\r %.1f%%", progres);
menu_additem(menu, text, "3");
formatex(text, charsmax(text), "Bombe dezamorsate:\r %d/%d", bmb_def[id], misiuni_ct[misiune_ct][info]);
menu_additem(menu, text, "4");
}
case 3:
{
progres = (kills_ct[id] * 100.0)/float(misiuni_ct[misiune_ct][info]);
formatex(text, charsmax(text), "Progresul tau:\r %.1f%%", progres);
menu_additem(menu, text, "3");
formatex(text, charsmax(text), "Kill-uri facute:\r %d/%d", kills_ct[id], misiuni_ct[misiune_ct][info]);
menu_additem(menu, text, "4");
}
}
formatex(text, charsmax(text), "Sansa de a castiga premiul:\r %.2f%%", calculeaza(id, CS_TEAM_CT, misiune_ct, 0, text_potentiali));
menu_additem(menu, text, "5");
}
else
{
new bool:gasit = false, i, players[32], numar, player, nume_jucator[32];
cauta_id_jucatori(players, numar);
for(i = 0; i < numar; i++)
{
player = players[i];
if(!is_user_connected(player)) continue;
get_user_name(player, nume_jucator, charsmax(nume_jucator));
if(equal(nume_castigator_ct, nume_jucator))
{
gasit = true;
break;
}
}
formatex(text, charsmax(text), "Castigator: \r%s%s (%sconectat)", nume_castigator_ct, gasit ? "\w" : "\d", gasit ? "" : "de");
menu_additem(menu, text, "2");
}
}
else
{
format_misiune_t(misiune_t, text_misiune);
formatex(text, charsmax(text), "Misiune curenta: %s", text_misiune);
menu_additem(menu, text, "1");
if(!misiune_completa_t)
{
if(misiune_t != -1 && se_desfasoara) formatex(text, charsmax(text), "Status misiune: \yIN DESFASURARE");
else formatex(text, charsmax(text), "Status misiune: \dSUSPENDATA");
menu_additem(menu, text, "2");
switch(misiune_t)
{
case 0:
{
progres = (runde[id] * 100.0)/float(misiuni_t[misiune_t][info]);
formatex(text, charsmax(text), "Progresul tau:\r %.1f%%", progres);
menu_additem(menu, text, "3");
formatex(text, charsmax(text), "Runde supravietuite:\r %d/%d", runde[id], misiuni_t[misiune_t][info]);
menu_additem(menu, text, "4");
}
case 1:
{
progres = (kills_t[id] * 100.0)/float(misiuni_t[misiune_t][info]);
formatex(text, charsmax(text), "Progresul tau:\r %.1f%%", progres);
menu_additem(menu, text, "3");
formatex(text, charsmax(text), "Kill-uri facute:\r %d/%d", kills_t[id], misiuni_t[misiune_t][info]);
menu_additem(menu, text, "4");
}
case 2:
{
progres = (bmb_plant[id] * 100.0)/float(misiuni_t[misiune_t][info]);
formatex(text, charsmax(text), "Progresul tau:\r %.1f%%", progres);
menu_additem(menu, text, "3");
formatex(text, charsmax(text), "Bombe plantate:\r %d/%d", bmb_plant[id], misiuni_t[misiune_t][info]);
menu_additem(menu, text, "4");
}
case 3:
{
progres = (kills_t[id] * 100.0)/float(misiuni_t[misiune_t][info]);
formatex(text, charsmax(text), "Progresul tau:\r %.1f%%", progres);
menu_additem(menu, text, "3");
formatex(text, charsmax(text), "Kill-uri facute:\r %d/%d", kills_t[id], misiuni_t[misiune_t][info]);
menu_additem(menu, text, "4");
}
}
formatex(text, charsmax(text), "Sansa de a castiga premiul:\r %.2f%%", calculeaza(id, CS_TEAM_T, misiune_t, 0, text_potentiali));
menu_additem(menu, text, "5");
}
else
{
new bool:gasit = false, i, players[32], numar, player, nume_jucator[32];
cauta_id_jucatori(players, numar);
for(i = 0; i < numar; i++)
{
player = players[i];
if(!is_user_connected(player)) continue;
get_user_name(player, nume_jucator, charsmax(nume_jucator));
if(equal(nume_castigator_t, nume_jucator))
{
gasit = true;
break;
}
}
formatex(text, charsmax(text), "Castigator: \r%s%s (%sconectat)", nume_castigator_t, gasit ? "\w" : "\d", gasit ? "" : "de");
menu_additem(menu, text, "2");
}
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
public statistici_handler(id, menu, item)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public alege_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new CsTeams:echipa = cs_get_user_team(id);
if(echipa == CS_TEAM_CT)
{
if(item != misiune_ct)
{
misiune_aleasa_ct = item;
//format_misiune_ct(misiune_aleasa_ct, text_misiune);
}
else
{
ColorChat(id, "!4%s!3 Nu poti alege misiunea curenta. Alege alta misiune.", TAG);
menu_destroy(menu);
return PLUGIN_HANDLED;
}
}
else
{
if(item != misiune_t)
{
misiune_aleasa_t = item;
//format_misiune_t(misiune_aleasa_t, text_misiune);
}
else
{
ColorChat(id, "!4%s!3 Nu poti alege misiunea curenta. Alege alta misiune.", TAG);
menu_destroy(menu);
return PLUGIN_HANDLED;
}
}
get_user_name(id, nume_admin, charsmax(nume_admin));
ColorChat(id, "!4%s!1 Misiunea!3 %s!1 va fi activata la urmatorul spawn.", TAG, text_misiune);
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public client_death(killer, victim, wpnindex, hitplace, tk)
{
if(!is_user_alive(killer)) return;
if(killer == victim) return;
if(!se_desfasoara) return;
new CsTeams:echipa = cs_get_user_team(killer);
if(echipa == CS_TEAM_CT)
{
if(misiune_completa_ct) return;
switch(misiune_ct)
{
case 0:
{
if(hitplace != HIT_HEAD) return;
if(++kills_ct[killer] == misiuni_ct[misiune_ct][info])
{
castigator_ct = killer;
misiune_completa_ct = true;
get_user_name(castigator_ct, nume_castigator_ct, charsmax(nume_castigator_ct));
set_task(1.0, "task_anunta_castigator");
}
}
case 1:
{
if(wpnindex != CSW_KNIFE) return;
if(++kills_ct[killer] == misiuni_ct[misiune_ct][info])
{
castigator_ct = killer;
misiune_completa_ct = true;
get_user_name(castigator_ct, nume_castigator_ct, charsmax(nume_castigator_ct));
set_task(1.0, "task_anunta_castigator");
}
}
case 3:
{
if(++kills_ct[killer] == misiuni_ct[misiune_ct][info])
{
castigator_ct = killer;
misiune_completa_ct = true;
get_user_name(castigator_ct, nume_castigator_ct, charsmax(nume_castigator_ct));
set_task(1.0, "task_anunta_castigator");
}
}
//default: {}
}
}
else
{
if(misiune_completa_t) return;
switch(misiune_t)
{
case 0: runde[victim] = 0;
case 1:
{
if(wpnindex != CSW_KNIFE) return;
if(++kills_t[killer] == misiuni_t[misiune_t][info])
{
castigator_t = killer;
misiune_completa_t = true;
get_user_name(castigator_t, nume_castigator_t, charsmax(nume_castigator_t));
set_task(1.0, "task_anunta_castigator");
}
}
case 3:
{
if(++kills_t[killer] == misiuni_t[misiune_t][info])
{
castigator_t = killer;
misiune_completa_t = true;
get_user_name(castigator_t, nume_castigator_t, charsmax(nume_castigator_t));
set_task(1.0, "task_anunta_castigator");
}
}
//default: {}
}
}
}
public bomb_planted(id)
{
if(se_desfasoara && misiune_t == 2 && !misiune_completa_t)
{
ColorChat(id, "!4%s!1 Felicitari!!! Ai plantat o bomba. Planteaza in continuare bombe si termina primul misiunea.", TAG);
ColorChat(id, "!4%s!1 Urmareste-ti progresul, tastand in chat!3 /misiune!1.", TAG);
if(++bmb_plant[id] == misiuni_t[misiune_t][info])
{
castigator_t = id;
misiune_completa_t = true;
get_user_name(castigator_t, nume_castigator_t, charsmax(nume_castigator_t));
set_task(1.0, "task_anunta_castigator");
}
}
}
public bomb_defused(id)
{
if(se_desfasoara && misiune_ct == 2 && !misiune_completa_ct)
{
ColorChat(id, "!4%s!1 Felicitari!!! Ai dezamorsat o bomba. Dezamorseaza in continuare bombe si termina primul misiunea.", TAG);
ColorChat(id, "!4%s!1 Urmareste-ti progresul, tastand in chat!3 /misiune!1.", TAG);
if(++bmb_def[id] == misiuni_ct[misiune_ct][info])
{
castigator_ct = id;
misiune_completa_ct = true;
get_user_name(castigator_ct, nume_castigator_ct, charsmax(nume_castigator_ct));
set_task(1.0, "task_anunta_castigator");
}
}
}
stock cauta_id_jucatori(players[32], &numar)
{
numar = 0;
new player;
for(player = 1; player <= max_players; player++)
{
if(!is_user_connected(player)) continue;
players[numar++] = player;
}
}
/*
Ce calculez?
0 = sansa
1 = potentiali castigatori
*/
stock Float:calculeaza(id, const CsTeams:echipa, const misiune, const ce_calculez, text[512])
{
// retinem id-ul tuturor jucatorilor de pe server (numar = total de id-uri)
new players[32], numar, i, player;
cauta_id_jucatori(players, numar);
new progres[33], maxim = 0;
arrayset(progres, 0, charsmax(progres));
for(i = 0; i < numar; i++)
{
player = players[i];
if(!is_user_connected(player)) continue;
if(cs_get_user_team(player) != echipa) continue;
if(echipa == CS_TEAM_CT)
{
switch(misiune)
{
case 0,1,3: progres[player] = kills_ct[player];
case 2: progres[player] = bmb_def[player];
default: progres[player] = 0;
}
}
else
{
switch(misiune)
{
case 0: progres[player] = runde[player];
case 1,3: progres[player] = kills_t[player];
case 2: progres[player] = bmb_plant[player];
default: progres[player] = 0;
}
}
// calcularea maximului
if(maxim <= progres[player]) maxim = progres[player];
}
if(ce_calculez == 0)
{
// algoritm: statisticile tale intr-o misiune raportate la numarul total maxim de statistici
// nu se poate imparti la 0, deci daca maximul este 0, inseamna ca exista sanse de 100.0% ca un jucator sa castige premiul
return (maxim == 0) ? 100.0 : (float(progres[id])/float(maxim))*100.0;
}
new len = 0, nume[32];
if(!maxim) len += format(text[len], charsmax(text)-len, "!3toti jucatorii!1.");
else
{
for(i = 0; i < numar; i++)
{
player = players[i];
if(!is_user_connected(player)) continue;
if(progres[player] == maxim)
{
get_user_name(player, nume, charsmax(nume));
len += format(text[len], charsmax(text)-len, "!3%s!1 | ", nume);
}
}
// sa nu mai apara dupa ultimul nume caracterul '|'
text[strlen(text)-2] = 0;
}
///* debug
console_print(id, "MAXIM jucatori: %d", maxim);
for(i = 0; i < numar; i++)
{
player = players[i];
if(!is_user_connected(player)) continue;
if(cs_get_user_team(player) != echipa) continue;
get_user_name(player, nume, charsmax(nume));
client_print(id, print_console, "--> %s Progres: %d", nume, progres[player]);
}
//*/
// p.l.m...
return 1.0;
}
stock reseteaza_tot()
{
// reset
arrayset(bmb_plant, 0, charsmax(bmb_plant));
arrayset(bmb_def, 0, charsmax(bmb_def));
arrayset(kills_t, 0, charsmax(kills_t));
arrayset(kills_ct, 0, charsmax(kills_ct));
arrayset(runde, 0, charsmax(runde));
castigator_t = -1;
castigator_ct = -1;
misiune_completa_t = false;
misiune_completa_ct = false;
nume_castigator_t[0] = EOS;
nume_castigator_ct[0] = EOS;
}
stock format_misiune_ct(const misiune, string[128])
{
string[0] = EOS;
static str_to_rpl[3];
num_to_str(misiuni_ct[misiune][info], str_to_rpl, charsmax(str_to_rpl));
copy(string, charsmax(string), misiuni_ct[misiune][str]);
replace(string, charsmax(string), "#", str_to_rpl);
//client_print(id, print_chat, "%d. %s", misiune, string);
}
stock format_misiune_t(const misiune, string[128])
{
string[0] = EOS;
static str_to_rpl[3];
num_to_str(misiuni_t[misiune][info], str_to_rpl, charsmax(str_to_rpl));
copy(string, charsmax(string), misiuni_t[misiune][str]);
replace(string, charsmax(string), "#", str_to_rpl);
//client_print(id, print_chat, "%d. %s", misiune, string);
}
stock ColorChat(id, String[], any:...)
{
static szMesage[192];
vformat(szMesage, charsmax(szMesage), String, 3);
replace_all(szMesage, charsmax(szMesage), "!1", "^1");
replace_all(szMesage, charsmax(szMesage), "!3", "^3");
replace_all(szMesage, charsmax(szMesage), "!4", "^4");
static g_msg_SayText = 0;
if(!g_msg_SayText) g_msg_SayText = get_user_msgid("SayText");
new Players[32], iNum = 1, i;
if(id) Players[0] = id;
else get_players(Players, iNum, "ch");
for(--iNum; iNum >= 0; iNum--)
{
i = Players[iNum];
message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
write_byte(i);
write_string(szMesage);
message_end();
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)