Ü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
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.
É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?
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...
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
este leírom de most rohanok.
oké
előre is köszönöm
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*/) { }
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
Blue kódja:
https://github.com/GMBlue/BlueCodes/blob/master/FunScripts/censure_system.cpp
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.
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. :)
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...
EroniX nem tudnád nekem le írni hogy mit kellene módosítani/hozzáadni , hogy táblából kérdezzen le?
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.
Ja igen erről el is feledkeztem de egy tökéletes példa van lentebb a transmog scriptemben...