Szerző Téma: Sima chat kikapcsolása  (Megtekintve 1064 alkalommal)

Sima chat kikapcsolása
« Dátum: 2014. február 02. - 13:50:54 »
0 Show voters
Sziasztok!
 
Egy olyan kéréssel fordulnék hozzátok, hogy hogy tilthatom le az alap chatet?
Van egy /k parancs, amivel a közelben lehet írni, de a sima chattel mikor T-t nyomunk, akkor mindenki látja amit ír valaki, de állítólag meg van csinálva hogy csak a közelbe látszódjon... :wall:
+ Hol találom meg azt a sort a módban hogy csak a közelben láthassák a chatet?
Egy idõben tudtam, de rég nem pawnoztam.
 
Válaszotokat elõre is köszönöm! :)
« Utoljára szerkesztve: 2014. február 02. - 13:53:05 írta davidszasza99 »

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Sima chat kikapcsolása
« Válasz #1 Dátum: 2014. február 02. - 13:58:47 »
0 Show voters
Az OnPlayerText 0-val térjen vissza, és eltûnik az alap chat. A lokális chatet pedig for ciklussal tudod elõvarázsolni, melyben csak az éppen író játékos XY körzetében lévõ játékosoknak küldöd el a textet. Esetleg használhatsz még chat bubblet, a fej fölé kiíráshoz.

Nem elérhető nyomo

  • 159
    • Profil megtekintése
Sima chat kikapcsolása
« Válasz #2 Dátum: 2014. február 02. - 14:06:54 »
+1 Show voters
pl nekem így néz ki:
 
public OnPlayerText(playerid, text[])
{
    new Float:x, Float:y, Float:z, str[128];
    GetPlayerPos(playerid, x, y, z);
    GetPlayerName(playerid, nev, sizeof(nev));
nev[strfind(nev,\"_\")] = \' \';
for(new i;i<MAX_PLAYERS;i++)
    {
        if(IsPlayerConnected(i)==1 && Belepve== 1)
        {
            if(IsPlayerInRangeOfPoint(i, 15, x, y, z))
            {
                if(playerid != i)format(str, sizeof(str), \"%s: %s\", nev, text);
                if(playerid == i)format(str, sizeof(str), \"Te: %s\", text);
                SendClientMessage(i, -1,str);
            }
        }
    }
    return 0;
}

Sima chat kikapcsolása
« Válasz #3 Dátum: 2014. február 02. - 14:28:23 »
0 Show voters
Idézetet írta: nyomo date=1391346414\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"46237\" data-ipsquote-contentclass=\"forums_Topic
pl nekem így néz ki:
 
public OnPlayerText(playerid, text[])
{
    new Float:x, Float:y, Float:z, str[128];
    GetPlayerPos(playerid, x, y, z);
    GetPlayerName(playerid, nev, sizeof(nev));
nev[strfind(nev,\"_\")] = \' \';
for(new i;i<MAX_PLAYERS;i++)
    {
        if(IsPlayerConnected(i)==1 && Belepve== 1)
        {
            if(IsPlayerInRangeOfPoint(i, 15, x, y, z))
            {
                if(playerid != i)format(str, sizeof(str), \"%s: %s\", nev, text);
                if(playerid == i)format(str, sizeof(str), \"Te: %s\", text);
                SendClientMessage(i, -1,str);
            }
        }
    }
    return 0;
}

 

Értem, de a névre errort ad ki, mert nincs meg a \"new\"-je :D

Nem elérhető nyomo

  • 159
    • Profil megtekintése
Sima chat kikapcsolása
« Válasz #4 Dátum: 2014. február 02. - 17:09:12 »
0 Show voters
Igen, mert nekem globálisan van létrehozva, gondoltam ezt megoldod magadnak. Az nem \"new\"-je, hanem változó, mégpedig string. 

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Sima chat kikapcsolása
« Válasz #5 Dátum: 2014. február 02. - 17:33:53 »
+1 Show voters
Az a vicc, és egyben a szomrú, hogy amit én leírtam megoldást, az ugyanaz, mint nyomoé, csak az egyik szóban, a másik forráskódban, mégis a témanyitó szerint csak a kód a megoldás. :hmmm: Kedves témanyitó! Tanuld meg a programozásban használt szavak jelentését, hogy tudd értelmezni más segítségét, illetve hogy tudj programozni. Amíg nem tudod mi micsoda, ne is nagyon állj neki nagyobb dolgoknak, csak gyakorolj, és tanulj sokat. Köszönöm.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal