Szavak Tiltása

Indította Shark1616, 2012 augusztus 29, 11:31:42 DÉLUTÁN

Előző téma - Következő téma

Shark1616

Ü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

EroniX

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.
Azuregos Delta Force

Shark1616

É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?

EroniX

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...
Azuregos Delta Force

Shark1616

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

EroniX

Azuregos Delta Force

Shark1616


EroniX

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*/) { }
Azuregos Delta Force

Shark1616

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


Shark1616

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.

Bluerák


MacBook Pro 13' 2.26 GHZ, 4 GB RAM - White
iPhone 4S 16GB - Black
iPad 3 - Black

NEW PC:
Asus EAH6670 (1GB 128 bit)
AMD FX AM3+ (4x3.8GHZ)
ASRock 970 EXTREME3
8GB RAM

EroniX

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...
Azuregos Delta Force

Shark1616

EroniX nem tudnád nekem le írni hogy mit kellene módosítani/hozzáadni , hogy táblából kérdezzen le?

AximCore

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.
"Tanítani lehet az ostobát, de gondolkodásra bírni nem."
A Talmud

Windows Firewall
http://devopsreactions.tumblr.com/

Why use Windows, if you have open doors... to Linux

Powered by EzPortal