Szerző Téma: figyelmeztetés  (Megtekintve 744 alkalommal)

Nem elérhető Tomee

  • 385
    • Profil megtekintése
figyelmeztetés
« Dátum: 2013. Április 06. - 20:56:39 »
0 Show voters
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.

Nem elérhető kos

  • 292
    • Profil megtekintése
figyelmeztetés
« Válasz #1 Dátum: 2013. Április 06. - 22:06:39 »
0 Show voters
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;
}

Nem elérhető Tomee

  • 385
    • Profil megtekintése
figyelmeztetés
« Válasz #2 Dátum: 2013. Április 06. - 23:29:00 »
0 Show voters
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\"

figyelmeztetés
« Válasz #3 Dátum: 2013. Április 06. - 23:33:06 »
0 Show voters
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?
« Utoljára szerkesztve: 2013. Április 06. - 23:34:40 írta bencarter007 »

Nem elérhető Tomee

  • 385
    • Profil megtekintése
figyelmeztetés
« Válasz #4 Dátum: 2013. Április 06. - 23:41:23 »
0 Show voters
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á?

figyelmeztetés
« Válasz #5 Dátum: 2013. Április 06. - 23:48:01 »
0 Show voters
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

Nem elérhető Fool

  • 107
    • Profil megtekintése
figyelmeztetés
« Válasz #6 Dátum: 2013. Április 07. - 01:07:45 »
0 Show voters
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.

Nem elérhető Tomee

  • 385
    • Profil megtekintése
figyelmeztetés
« Válasz #7 Dátum: 2013. Április 07. - 09:34:16 »
0 Show voters
Háát csak a mysql-el még vannak problémáim. Úgyhogy a tervemnek lõttek :D
Kösz mindent

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal