PDA

View Full Version : Vot wcd



daniel_San
18-04-2020, 06:22 PM
Salut si bine v-am regasit(noroc cu carantina ca am mai deschis cs-ul :)) )

Dat fiind ca numarul de jucatori e mare si adminii sunt si ei oameni si nu pot sta 24/24 pe sv, am o idee de un plugin de vote wcd. Adica:

Sa zicem ca unul are un cod din ala naspa. Toata lumea striga prin consola insa nimeni nu prea are ce face. Pe vremuri era un plugin de voteban, ceea ce mie sincer nu imi place(pt ca se poate ajunge la abuzuri).

Asa ca putem face un plugin prin care oamenii pot spune in chat "/votewcd jucatorulX". Cand un numar de voturi se atinge(sa zicem jumate din jucatorii de pe sv), jucatorului in cauza ii va fi cerut un scan wcd de catre sv(asa cum fac si adminii). Din acel moment sa zicem ca are 5 minute sa faca scann-ul, altfel ban.

Cum vad eu ca ar functiona:
Daca eu jucator X, votez /votewcd Y, nu mai pot vota iara pt Y(votez o singura data pt un jucator)
Daca Y a fost scanat, 15 min sa zicem nu mai poate fi votat iar

Daca cererea de scanare a fost initiata(nr de voturi destule):
*Jucatorul e trecut pe spec
*Jucatorul va fi informat la un interval regulat de unde sa descarce, cum sa descarce etc.
*Daca jucatorul iese in intervalul asta, ban(daca iese de buna voie, nu schimb de mapa, kick, etc).
*Daca harta se schimba, scanarea se va relua(deci nu scapa cu schimbarea hartii).
*Jucatorul are un timp(sa zicem 5 min) in care poate efectua WCD-ul. Dupa 5 min, serverul interogheaza site-ul wgods. Daca jucatorul are cod sau scanarea nu a fost gasita pt ultimele 5 min pt acel jucator...ban.

Am inceput sa lucrez la el aici:
<b>You have to register to ba able to see this link</b>

Practic:
Am creat un repo de git pt lucrul pe wargods. Dat fiind faptul ca putem fi mai multi care sa lucreze la aceleasi proiecte(si sper asta), cine vrea sa contribuie sa imi spuna sa il adaug pe repo. Eventual, facem unul pe un email al comunitatii, si punem mai multi admini(tiger,max etc). Lucrul e cel clasic de git:
Se cloneaza solutia, se lucreaza pe branch-uri, si merge-ul in master se face in urma unor pullrequest-uri si review. Asa, chiar daca eu las munca intr-un punct, altcineva va putea/stii sa o ia de unde a ramas, oamenii pot invata, si pluginurile vor fi terminate mai repede daca se lucreaza de mai multi oameni.


Cu topicul asta am nevoie de 2 pareri:

1) Credeti ca un asemenea plugin e de folos?
2) Credeti ca un repo de git ar ajuta? Si workflow-ul de git(lucru in paralel, pull-requesturi, cineva isi da acordul inainte sa intre in productie, etc).

P.S: Avand in vedere ca nu am mai atins codul de amx de 8 ani o sa am nevoie la greu de ajutor :)). Deci cine vrea sa contribuie la scrierea codului e binevenit. Also, tiger, clar o sa am nevoie de ajutorul tau.

~th3fla~
18-04-2020, 06:46 PM
Ar fii util un astfel de plugin, dar cum va verifica pluginul raportul wcd pe care îl va da jucătorul? Nu cred că ar fii posibil așa ceva, deoarece site-ul shorte.st iți mai cere și o verificare captcha.

-=Christian=-
18-04-2020, 07:04 PM
Un astfel de plugin ar fi foarte bun pe server, dar cum a spus si ~th3fla~, cum va putea verifica pluginul raportul wCD?

Tiger
18-04-2020, 07:30 PM
Iti pot oferi acces pe <b>You have to register to ba able to see this link</b> daca doresti. O parte din plugin-urile care nu sunt folosite nicaieri as vrea sa le fac public acolo.

Cat legat de propunere sunt cateva probleme momentan:
1) 5 minute s-ar putea sa nu fie suficient. Unii au sisteme foarte slabe, care nici dupa 30 de minute (da, ai citit bine) nu se termina scanarea.

Doar cateva intrari la care wCD a dat timeout (exprimate in minute):


15.04.2020 01:28:35 <> 21
15.04.2020 01:31:39 <> 22
15.04.2020 10:26:42 <> 31
15.04.2020 11:05:04 <> 21
15.04.2020 11:10:54 <> 22
15.04.2020 11:16:47 <> 24
15.04.2020 11:32:59 <> 29
15.04.2020 11:37:33 <> 30
15.04.2020 11:40:01 <> 21
15.04.2020 11:51:10 <> 26
15.04.2020 12:04:31 <> 27
15.04.2020 12:49:14 <> 24
15.04.2020 14:05:59 <> 25
15.04.2020 16:44:42 <> 27
15.04.2020 17:53:22 <> 23
15.04.2020 18:01:57 <> 29
15.04.2020 18:25:46 <> 21
15.04.2020 22:27:40 <> 22
16.04.2020 12:02:56 <> 30
16.04.2020 14:42:09 <> 30
16.04.2020 17:53:23 <> 31
16.04.2020 19:38:14 <> 27
16.04.2020 20:44:37 <> 21
16.04.2020 22:20:50 <> 30
16.04.2020 22:22:18 <> 21
17.04.2020 00:38:34 <> 31
17.04.2020 02:13:03 <> 24
17.04.2020 11:15:37 <> 31
17.04.2020 13:03:35 <> 21
17.04.2020 14:31:00 <> 46
17.04.2020 15:41:48 <> 35
17.04.2020 17:36:30 <> 32
17.04.2020 18:36:14 <> 32
17.04.2020 21:43:23 <> 22
17.04.2020 23:28:26 <> 22
18.04.2020 13:39:18 <> 24
18.04.2020 17:36:12 <> 22
18.04.2020 17:39:52 <> 30


-> Putem adauga un hack la treaba asta prin verificarea starii scanarii (gen: scanare, scanare terminata).

-> Lucrez la v3, din pacate imi va mai lua pana termin aceasta versiune cu care sper sa reduca timpul de scanare. Sunt 2 lucruri ce dureaza foarte mult in wCD: scanarea de semnaturi in memorie si calculul de hash a fisierelor (md5/sha256). Daca nu ar fi acestea 2 scanarea s-ar termina in vreo 1-3 secunde (i7 HQ).
As fi vrut sa integrez scanarea cu rule-uri Yara, doar ca nu-l pot integra din cauza ca as adauga dependinte suplimentare (Visual C++ Redistributable for Visual Studio 2015) sau fisiere suplimentare (libyara, openssl, jansson). Iar fisierele in overlay/assembly/resurse + despachetarea lor nu este o solutie, ar urla AV-urile in continuu din cauza ca nu e semnat digital.

2) Socket-urile in amxx sunt... prastie. La aceasta problema se mai adauga si latenta Cloudflare, chiar daca este dezactivat per pagina. Trebuie optimizat bine pagina de interogare astfel incat acestea sa nu stea foarte mult, altfel ar putea sa blocheze server-ul.

3) In momentul de fata db-ul nu este deloc optim, s-a ajuns la un total >25GB (momentan pe site nu e complet, deoarece am mai sters date din el). Bine, asta nu inseamna ca cu niste trucuri nu o putem realiza pentru ce ne trebuie noua. Urma ca, tot in v3, sa schimb structura db-ului si sa creez un REST-API ce poate fi interogat si de altii pe baza de token.

-> Am deja script de conversie a datelor din db in noul format. Problema este ca dureaza cateva zile bune pana imi converteste spre noul format (pentru rapiditate il convertest in sqlite (memory) si apoi din sqlite -> mysql). Totodata size-ul db-ului descreste considerabil, dar tot nu ar fi indeajuns sa-l pun aici pe host (ultima data a luat ~7-8gb [sqlite] - probabil ca dupa convertirea in mysql ar urma sa mai creasca).


4) Trebuie refacut site-ul wCD-ului sa fie cat mai optim pentru noul format de db. Inca in curs de dezvoltare.

5) Mi ca o sa se faca abuz, ca si cu voteban.

daniel_San
18-04-2020, 07:35 PM
L.E: Good, e perfect repo-ul ala.

Pai si la oamenii care au timeout sau la care dureaza mult cum o rezolva adminii? Adica daca unul sta de 30 min sa faca scann-ul nu ii dati ban?

2) Da, e doar o interogare mica de <b>You have to register to ba able to see this link</b>
3) Pai atunci putem astepta V3 si interoga prin rest api. Cat despre baza. Practic pt pluginul asta ar trebui sa tinem doar scanarile pe ultimele cateva ore. Ca dpdv al plugnului nu il intereseaza ca a fost scanat acum o saptamana. Ma astept la cateva zeci de randuri intr-o tabela(asa...la modul exagerat).
4) M-am gandit si eu la asta, ma gandeam la o chestie...daca a fost scanat in ultimele x minute sa nu mai poata fi votat iar.

Acum nu stiu ce sa zic, ideea e ca am vazut cum serverul s-a golit din cauza unuia care bubuia aim-ul zilelele trecute si nimeni nu prea putea face nimic.
De putut se poate face orice, e sw la urma urmei. Intrebarea e daca merita efortul sau nu si cat de rau s-ar abuza de asta/ daca putem face sa nu se abuzeze

L.E: am zis 5 min un numar random. conditiile de pedepsire pot fi ajustate(ca e pe timp, ca il treci pe spec si ii dai ban daca se pune intr-o echipa, ca ii dai ban la deconectare, etc). Sau nici macar nu trebuie sa il banezi. il treci pe spec si il tii acolo fortat pana isi face scanarea. Ideea e sa nu joace pana nu e verificat in the end.

-=Christian=-
18-04-2020, 07:41 PM
L.E: Good, e perfect repo-ul ala.

Pai si la oamenii care au timeout sau la care dureaza mult cum o rezolva adminii? Adica daca unul sta de 30 min sa faca scann-ul nu ii dati ban?

Trebuie sa fim intelegatori si rabdatori cu ei, atat timp cat vezi ca jucatorul in cauza are intentia de a face, da, atunci il asteptam.

Tiger
18-04-2020, 07:59 PM
Ti-am dat invite pe pagina de Github a comunitatii. Cine mai doreste invite sa imi zica.

As sugera ca prima data sa fie terminate wCD app si platforma web inainte de db, ia foarte mult timp de dezvoltat chestiile marunte.

daniel_San
18-04-2020, 08:02 PM
Multuu. Si da, de acord.

-=Christian=-
04-05-2020, 05:56 PM
:locked: