Informatikai Barkács Fórum

WORLD OF WARCRAFT SZERVER => Core/Mag => A témát indította: Shark1616 Dátum 2012 augusztus 29, 11:31:42 DÉLUTÁN

Cím: Szavak Tiltása
Írta: Shark1616 Dátum 2012 augusztus 29, 11:31:42 DÉLUTÁN
Üdv

Arra lennék kíváncsi hogy hol lehet szavakat letiltani mint pl.: alapból a  wow nem engedi a "fuck" szót helyette valami ilyet kapunk: @!#%
Na már most ezt a "listát" szeretném én bővíteni.
Csak ugye bár nem tudom hogy hol lehet!

Ebben kérnék én segítséget.

Előre is köszönöm
Cím: Re:Szavak Tiltása
Írta: EroniX Dátum 2012 augusztus 30, 10:30:01 DÉLELŐTT
elképzelhetőnek tartom, hogy amit te szeretnél csinálni az kliens.

ha nem vagy ígényes itt egy megoldás, hook:
void OnChat(Player* player, uint32 type, uint32 lang, std::string message)

kód:
if(message.find("eronix") != std::string::npos)
     message = "zsírkirály!";

ha most beírod h. "eronix" kiírja azt, hogy "zsírkirály". nagyon régen foglalkoztam vele, de ennek működnie kellene.
Cím: Re:Szavak Tiltása
Írta: Shark1616 Dátum 2012 augusztus 30, 12:13:42 DÉLUTÁN
És ezt hova és hogyan kellene be illeszteni?
jah és bővíteni tehát több szót tiltatni meg csak duplikálom a sorokat?
Cím: Re:Szavak Tiltása
Írta: EroniX Dátum 2012 augusztus 30, 12:17:32 DÉLUTÁN
Ezt egy playerscriptbe, ha többet szeretnél:
if(message.find("eronix") != std::string::npos || message.find("windowsphone") != std::string::npos)
     message = "zsírkirály!";

Akár egy táblát is csinálhatnál neki, ahonnan startupnál betölti az adatokat...
Cím: Re:Szavak Tiltása
Írta: Shark1616 Dátum 2012 augusztus 30, 12:37:43 DÉLUTÁN
na ez érdekelne hogy, egy táblából lekérdezni a szavakat és akkor bármikor bővíthető
ezt a playerscript dolgot nem vágom le írnád pontosan mit is kellene létrehozni/módisítani?

kösz
Cím: Re:Szavak Tiltása
Írta: EroniX Dátum 2012 augusztus 30, 12:38:51 DÉLUTÁN
este leírom de most rohanok.
Cím: Re:Szavak Tiltása
Írta: Shark1616 Dátum 2012 augusztus 30, 12:40:08 DÉLUTÁN
oké

előre is köszönöm
Cím: Re:Szavak Tiltása
Írta: EroniX Dátum 2012 augusztus 30, 08:54:09 DÉLUTÁN
nem fogom megírni az egészet, de itt van néhány támpont.
ha a táblás megoldást választod erősen javallott betölteni a táblát egy listába (a lentebb releaselt transmogomban találsz rá példát), a szerver indulásánál. ha ezt nem végzed el kissé lassú lesz, de ez kis szervereknél lényegtelen.

ja igen... a playerscript. nem egészen értem mit nem értesz rajta. csinálsz egy egyszerű playerscriptet és felhasználsz benne néhány hookot.

PlayerScript:

class ezegyplayerscript : public PlayerScript
{
    public:
ezegyplayerscript () : PlayerScript("ezegyplayerscript ") { }
};

Szükséges hookok:

void OnChat(Player* /*player*/, uint32 /*type*/, uint32 /*lang*/, std::string& /*msg*/) { }

void OnChat(Player* /*player*/, uint32 /*type*/, uint32 /*lang*/, std::string& /*msg*/, Player* /*receiver*/) { }

void OnChat(Player* /*player*/, uint32 /*type*/, uint32 /*lang*/, std::string& /*msg*/, Group* /*group*/) { }

void OnChat(Player* /*player*/, uint32 /*type*/, uint32 /*lang*/, std::string& /*msg*/, Guild* /*guild*/) { }

void OnChat(Player* /*player*/, uint32 /*type*/, uint32 /*lang*/, std::string& /*msg*/, Channel* /*channel*/) { }
Cím: Re:Szavak Tiltása
Írta: Shark1616 Dátum 2012 augusztus 30, 09:14:41 DÉLUTÁN
Bocsi de core script-elésben nem vagyok otthon.
Nem tudnád szájbarágósan le írni, ha szépen meg kérlek?

Kösz
Cím: Re:Szavak Tiltása
Írta: IrOn Dátum 2012 augusztus 30, 09:23:57 DÉLUTÁN
Blue kódja:
https://github.com/GMBlue/BlueCodes/blob/master/FunScripts/censure_system.cpp
Cím: Re:Szavak Tiltása
Írta: Shark1616 Dátum 2012 augusztus 30, 09:34:16 DÉLUTÁN
Oooo
Ez így már áttekinthető és már értem hogy mit próbáltál el magyarázni.

Nagyon szépen köszönöm.
Cím: Re:Szavak Tiltása
Írta: Bluerák Dátum 2012 augusztus 30, 09:36:05 DÉLUTÁN
Idézetet írta: IrOn Dátum 2012 augusztus 30, 09:23:57 DÉLUTÁN
Blue kódja:
https://github.com/GMBlue/BlueCodes/blob/master/FunScripts/censure_system.cpp
Kösz, ugyanezt akartam.  :)
Cím: Re:Szavak Tiltása
Írta: EroniX Dátum 2012 augusztus 30, 11:05:13 DÉLUTÁN
ugye tudjátok, hogy abban amit linkeltetek ha beírjátok az egyik káromkodásnak h. "b*uzi" és valaki már azt írja be h. "b*uzi," akkor nem fogja kicsillagozni...
Cím: Re:Szavak Tiltása
Írta: Shark1616 Dátum 2012 augusztus 31, 08:47:53 DÉLELŐTT
EroniX nem tudnád nekem le írni hogy mit kellene módosítani/hozzáadni , hogy táblából kérdezzen le?
Cím: Re:Szavak Tiltása
Írta: AximCore Dátum 2012 szeptember 02, 10:35:33 DÉLELŐTT
Idézetet írta: Shark1616 Dátum 2012 augusztus 31, 08:47:53 DÉLELŐTT
EroniX nem tudnád nekem le írni hogy mit kellene módosítani/hozzáadni , hogy táblából kérdezzen le?

A "System_Censure" osztálynak konstruktorába egy do ciklussal lekéred a tábla tartalmát és közbe egy dinamikus tömbbe be dobálod a string értékeket. Aztán csinálsz egy eljárást ami meg kapja a msg változót és mondjuk egy for ciklus és egy if segítségével kiválogatod a szavakat ami egyezik azt felül írod neked megfelelő karakterekkel.
Cím: Re:Szavak Tiltása
Írta: EroniX Dátum 2012 szeptember 02, 01:11:25 DÉLUTÁN
Ja igen erről el is feledkeztem de egy tökéletes példa van lentebb a transmog scriptemben...