GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Tomee - 2013. április 06. - 20:56:39

Cím: figyelmeztetés
Írta: Tomee - 2013. április 06. - 20:56:39
Sziasztok
Akarok egy olyan rendszert csinálni, hogy ha feljön a játékos akkor akarok egy kis információt csinálni nekik.
pl. ha beszáll egy kocsiba akkor kiírja neki, hogy \"Kocsi beindításához, írd be a /engine parancsot\"
Persze csak egy példa.
Létrehoztam egy Figyelmeztetés nevû mappát, amibe 0-tól vannak számok és mindegyikben egy-egy ilyen kis kiírás. Módban, hogy mikor írja ki ezt megtudom oldani, ami a kérdést jelenti számomra, hooogy...
Elõször elmondom, hogy-hogy akarom:
Azt, hogy most akarok vagy 40 ilyen figyelmeztetést, de nem akarom, hogy a játékosnak ezt mind elmentse, hogy
figyelmeztetés1 = 1;
és így 40ig.
Hanem, hogy a pl 3-as figyelmeztetésben benne van a szöveg, amit kiír. És akinek már mutatta ezt a figyelmeztetést annak beleírja a nevét a szöveg alá. És ha még egyszer beszáll egy kocsiba akkor lecsekkolja, hogy a 3as figyelmeztetésben benne van e a játékos neve és ha igen, akkor már nem írja ki többet.
És akkor az a bajom, hogy nem tudom, hogy kellene ezt összehozni.
Remélem érthetõ ahogy leírtam, ha gáz akkor leírom még egyszer.
Cím: figyelmeztetés
Írta: kos - 2013. április 06. - 22:06:39
Hello!
Próbáltam értelmezni, de ha nem így gondoltad kicsit elmondod pontosabban, akkor kijavítom.
 
public OnPlayerStateChange(playerid, newstate, oldstate)
{
        if(PlayerInfo[pInfo][pFigyelmeztetes] <3)//leelenõrzi 3 figyelmeztetésnél kevesebb van e
        {
                if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)//leellenõrzi vezetõ vagy e
                {
                        SendClientMessage(playerid,szín,\"/engine a motor beindításához!\");
                }
        }
return 1;
}
Cím: figyelmeztetés
Írta: Tomee - 2013. április 06. - 23:29:00
Neeem, konkrétan nem erre gondoltam :D
Lenne a scriptfiles mappában egy másik mappa.
\"Figyelmeztetések\"
Ebben létrehoznék számokkal jelzett .ini fájlokat.
0.ini
1.ini
40ig pl
És pl beleírom a 0-ba, hogy \"Ha beakarod indítani a kocsit írd be /engine\". És ha kiírta akkor a 0.ini-ben létrehozza a játékosnak a nevét. Azért mert a játékos már látta ezt a feliratot.
És ha legközelebb beszáll, akkor lecsekkolja, hogy a 0.ini-ben benne van-e a neve és ha igen akkor nem mutatja meg még egyszer.
Gyakorlatilag létretudom hozni ezeket, csak most nem akarom azt se hogy
 
enum fInfo
{
      Szoveg[128], //PL ide kerül az a szöveg hogy írd be /engine
      Nev1[32],
      Nev2[32],
      ...
       Nev80[32]
};
new Figyelmeztetes[40][fInfo];

 
Remélem értitek, mert most kitudja mennyi játékos lesz fent.
Iniben így nézne ki
\"Szoveg=A jármû beindításához írd be /engine
 jancsi,
 pisti,\"
És késöbb ha teszem azt én is beszállok akkor kíbûvül
\"Szoveg=A jármû beindításához írd be /engine
 jancsi,
 pisti,
 tomee\"
Cím: figyelmeztetés
Írta: bencarter007 - 2013. április 06. - 23:33:06
inkább nyomass neki egy regisztrációs rendszert és akkor oda beírod neki:
 

if(warning[playerid] == 1)//lekérjük, hogy most hanyadik figyelmeztetése van
{
SendClientMessage(playerid,színkód,\"üzenet\");
warning ++; //ez hozzáad egyet a warningokhoz, tehát következõ alkalommal már a következõ üzit fogja látni
}

 
amit te akarsz, az túlbonyolítja a játékot. belegondoltál abba, hogy ha lesz 200 játékosod, akkor mind a 200 nevet átfutja majd azért az egyért, akinek épp kéne küldeni az üzenetet?
Cím: figyelmeztetés
Írta: Tomee - 2013. április 06. - 23:41:23
Persze, de azt meg nem nagyon akarom hogy a regisztrációba egyenként lementsem hogy megvan-e vagy sem.
pInfo[playerid][pFigyelmeztetes1]
pInfo[playerid][pFigyelmeztetes2]
pInfo[playerid][pFigyelmeztetes3]
pInfo[playerid][pFigyelmeztetes4]
...
pInfo[playerid][pFigyelmeztetes40]
Vagy ez a legértelmesebb megoldás rá?
Cím: figyelmeztetés
Írta: bencarter007 - 2013. április 06. - 23:48:01
a módban szétírod egyenként a 40 figyelmeztetést, pl:
 
if(warning[playerid] == 1)
{
SendClientMessage(playerid,színkód,\"/engine a motor beindításához\");
warning ++
}
if(warning[playerid] == 2)
{
SendClientMessage(playerid,színkód,\"/enter az épületbe való belépéshez\");
warning ++;
}
if(warning[playerid] == 3)
{
SendClientMessage(playerid,színkód,\"/stats hogy megnézd az adataidat\");
warning ++;
}

 
ha az egyiket kiírta, akkor már csak a következõt fogja. és így a karakter mentésénél csupán egy sort foglal el az egész:
 
pInfo[playerid][pwarning] = 1
Cím: figyelmeztetés
Írta: Fool - 2013. április 07. - 01:07:45
Egy változóval ezt nem lehet megoldani szerintem mert annak mindig változni fog az értéke.
Tehát egyszerre csak egy figyelmeztetést \"rejtene\" el.
Na most én ezt inkább mysql alapon oldanám meg. Létrehozol egy épület nevû táblát amibe Felveszel egy név mezõt. Ha belép valaki az épületbe történjen egy lekerdezes ami megnezi hogy szerepel e a táblában az adott nev. Ha nem akkor létrehoz egy sort a nevével. Így már legközelebb nem írja neki a szöveget. Szerintem ez a legkönnyebb megoldás ha ilyet akarnék csinálni.
Cím: figyelmeztetés
Írta: Tomee - 2013. április 07. - 09:34:16
Háát csak a mysql-el még vannak problémáim. Úgyhogy a tervemnek lõttek :D
Kösz mindent