Jump to content

SourceMod CSGO: Plugin Block sm plugins, meta info


Recommended Posts

Posted

Plugin Sourcemod: Block SM Plugins

Pluginul Block SM Plugins este scris de către Bara și nu doresc să-mi atribui vreun drept de autor asupra codului. Nu e scris de mine asemenea altor pluginuri de FAIRSIDE.

Block SourceMod Plugins pare să fie compatibil 100% cu serverele de CSGO pe SourceMod 1.10, cât și pe SourceMod 1.11 dev.

Recomand compilare cu libraria PTAH pe SourceMod 1.10 sau DHooks pe SourceMod 1.11 dev (pentru ca este inclus).

Aici vom lucra rapid doar pe versiunea pentru PTAH (SourceMod 1.10 stable).

 

Descriere plugin server CSGO: Blocare comenzi SourceMod

Pentru inceput, pluginul are rolul de a bloca output-ul in consola serverelor de CSGO pentru comenzi precum: sm plugins, meta list, meta version etc.

Remarcam faptul ca pluginul pentru blocare pluginuri SM sau Meta de pe AlliedMods / GitHub prezintă câteva BUG-uri.

  • Nu există logs
  • Nu ai de unde să știi dacă omul scrie "sm" în consolă
  • Nu ai de unde să știi dacă omul scrie direct "sm plugins"
  • Nu există output la pluginul original de blocare comenzi sourcemod (sm, sm plugins, meta etc.)

 

In plus, am avut situații în care adminii au scris "sm" și oamenii credeau ca vor sa fure liste de pluginuri, dar de fapt rămânea textul în consolă și apăsau "enter key".

 

Tip resursă CSGO: Plugin SourceMod

Nume plugin CSGO: [FAIRSIDE.RO] Fixed Block SM Plugins

Autorul pluginului original: Bara

Autor plugin actualizat: HKS 27D

Versiune plugin: 1.0 + 3 local commits

Sursă: https://github.com/Bara/BlockSMPlugins

Asistență modificări plugin: Da

Posibilități personalizare plugin: Da

Erori posibile și compatibilitate: No errors, no warnings

Optimizat: Codul pluginului la fel ca in cazul pluginului lui Bara, dar s-au modificat lucrurile in functie de nevoile oamenilor de pe SourceMod Romania - detalii mai jos.

Consum CPU/RAM: Nu

Valabilitate plugin: serverele FAIRSIDE.RO sau serverele altor comunități - resursă disponibilă pentru download mai jos

Alte informații: Feel free to report any issues!

 

Functiile plugin blocare comenzi: SourceMod si MetaMod

1. Scapam de g_cMiddleFinger

Mai facem ceva modificari scurte daca e nevoie si mergem cu privirea mai jos. Observam urmatoarele linii:

 

if(g_cBlockSM.BoolValue && StrContains(message, "sm ") == 0 || StrEqual(message, "sm", false))
{
        return Plugin_Handled;
}
        
if(g_cBlockMeta.BoolValue && StrContains(message, "meta ") == 0 || StrEqual(message, "meta", false))
{
        return Plugin_Handled;
}

 

Corectam StrContains.

Intram pe https://sm.alliedmods.net/new-api/ si cautam functia StrContains.

 

Acolo scrie asa:

Return Value
-1 on failure (no match found). Any other value indicates a position in the string where the match starts.

 

Remarcam faptul ca pozitia caracterului/caracterelor este diferita de -1 oricand se gasesc potriviri in string. Asadar, nu punem == 0. Inlocuim ==0 cu != -1.

Cu ocazia asta acoperim toate celelalte situatii doar pentru ca punem operatorul corect (!= inseamna diferit).

Nu avem nevoie de pozitia caracterului/caracterelor in string, asa ca e cel mai potrivit sa punem != -1 in cazul de fata.

 

2. Ne dam seama ca avem 3 situatii

Facem totodata pluginul mai strict si mai destept daca tot ne dam seama ca avem 3 situatii.

Situatiile sunt urmatoarele:

  1. Omul scrie ceva care contine cuvantul "sm plugins".
  2. Omul scrie "sm" in consola: simplu sau langa orice alt text ori spatiu liber.
  3. Omul scrie un cuvant care contine cuvantul "meta".

 

Cele 3 situatii de mai sus sunt diferite. Fiecare situatie inseamna ceva:

  1. Vrea sa vada lista de pluginuri
  2. Vrea sa vada alte informatii cu privire la SourceMod
  3. Vrea sa vada informatii cu privire la MetaMod

 

3. Facem logs pentru fiecare situatie in parte

Lucram in acelasi fisier, dar afisam lucrurile diferit.

Diferențiem output-ul din fișier după cum urmează:

 

LogToFileEx("addons/sourcemod/logs/fs_sourcemod_metamod_logs.log", "[FAIRSIDE.RO] Player %s, SteamID %s, IP %s tried to get SourceMod plugins.", iName, iSteamID, iIP);

LogToFileEx("addons/sourcemod/logs/fs_sourcemod_metamod_logs.log", "[FAIRSIDE.RO] Player %s, SteamID %s, IP %s tried to get SourceMod info.", iName, iSteamID, iIP);

LogToFileEx("addons/sourcemod/logs/fs_sourcemod_metamod_logs.log", "[FAIRSIDE.RO] Player %s, SteamID %s, IP %s tried to get MetaMod info.", iName, iSteamID, iIP);

 

Sunt exact cele 3 situații descrise mai sus.

  1. x-ulescu tried to get SourceMod plugins
  2. x-ulescu tried to get SourceMod info
  3. x-ulescu tried to get MetaMod info

 

Apoi ne dam seama ca e mai bine sa faci pluginul in if else if else if else pentru ca:

  1. Oricum se executa toate if-urile.
  2. Daca nu pui if else - risti sa primesti logs pentru acelasi lucru de 2 ori si in afara de asta, clientului ii va aparea de 2 ori in consola mesajul pus de tine. Asta nu e ok.
  3. Ar mai exista posibilitatea sa pui 2 if-uri primare si al treila if secundar sa fie inclus intr-unul dintre cele doua if-uri primare.

 

Probabil ca mai sunt si alte posibilitati sa scrii pluginul, dar e important sa ai OUTPUT in consola CSGO si LOGS in serverul de joc.

Trebuie sa cauti corect in string-uri si sa le compari folosind operatorii de relationare potriviti.

La momentul realizarii acestei postari se poate da bypass la PTAH si DHooks. Dar trecem peste asta momentan.

Poate pe viitor lansam ceva cu privire la chestia asta, daca sunt cereri.

 

Identari plugin si optimizari: Block SM CSGO

Nu am stat sa fac identari speciale sau optimizari mai adanci in pluginul Block SM Plugins CSGO pentru ca nu are sens.

Dupa cum am spus mai sus, este foarte important sa ai OUTPUT in consola si LOGS in server.

Pentru optimizari puteti regandi singuri pluginul.

 

Download SourceMod: Block sm plugins CSGO

Dacă vreți să obțineți pluginul Block SM Plugins pentru serverul vostru de CSGO puteți să îl descărcați mai jos.

Nu e nevoie de un nou topic în care menționați nevoile voastre la secțiunea Public development.

Nu obligăm oamenii să dețină un server de CSGO în comunitatea FAIRSIDE.RO pentru a avea acces la acest plugin.

It's all free, as it should be! ✓

 

PTaH-V1.1.3-build20-linux.zip

fairside_sbp3.smx

fairside_sbp3.sp

 

  • Like 1
  • Love 1
Posted

First post [assigned]

SourceMod Block Plugins (sm plugins, meta info etc.) a fost actualizat. Versiunea pluginului nou: 5.0.

Pluginul este rescris total așa cum trebuie (pe PTAH și DHooks) - optimizari cod incluse.

Acesta este valabil fairside only.

  • Like 1
Guest
This topic is now closed to further replies.
×
×
  • Create New...