Szerző Téma: Közelben levők láthatják amit írok  (Megtekintve 937 alkalommal)

Közelben levők láthatják amit írok
« Dátum: 2015. december 30. - 10:04:36 »
0 Show voters
Sziasztok! Azt hogy lehet megoldani, hogy ha írok valamilyen szöveget chatbe akkor csak a közelemben lévő emberek lássák azt? Úgy mint egy RP szerveren az IC OOC chat. Előre is köszönöm a segítséget.

Nem elérhető BVZS

  • 487
    • Profil megtekintése
Közelben levők láthatják amit írok
« Válasz #1 Dátum: 2015. december 30. - 10:06:09 »
0 Show voters
public OnGameModeInit()
{
    LimitGlobalChatRadius(20.0);
    return 1;
}

Közelben levők láthatják amit írok
« Válasz #2 Dátum: 2015. december 30. - 10:07:42 »
0 Show voters
Köszönöm! És ha az RP szervernél maradunk, akkor ez igaz az IC és OOC chatre is, ugye?

Nem elérhető BVZS

  • 487
    • Profil megtekintése
Közelben levők láthatják amit írok
« Válasz #3 Dátum: 2015. december 30. - 10:08:36 »
0 Show voters
Attól függ, hogy OOC chatet hogyan oldod meg, mutasd a parancs kódját.

Közelben levők láthatják amit írok
« Válasz #4 Dátum: 2015. december 30. - 10:10:53 »
0 Show voters
Telefonról vagyok meg csak gondolkozok, hogy hogy belekezdek valamibe...  Hogy lehet úgy megoldani, hogy ilyen legyen OOC chatben is?

Nem elérhető BVZS

  • 487
    • Profil megtekintése
Közelben levők láthatják amit írok
« Válasz #5 Dátum: 2015. december 30. - 10:26:01 »
0 Show voters
Ahhoz valószínűleg más kell, ha jól tudom \"LimitGlobalChatRadius\" csak OnPlayerText-nél számít valamit.
Tessék lokális OOC chat (vagyis akik a közelben vannak, azok látják), ZCMD-t használva:
 

stock GetRPName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
for(new idx = 0; idx < sizeof(name); idx++)
if(name[idx] == \'_\') name[idx] = \' \';
return name;
}
forward ProxDetector(playerid, Float:range, szoveg[], szin);
public ProxDetector(playerid, Float:range, szoveg[], szin)
{
    new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
foreach(Player, i)
{
    if(IsPlayerInRangeOfPoint(i, range, x, y, z) && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
    {
   SendClientMessage(i, szin, szoveg);
    }
}
return 1;
}
CMD:b(playerid, params[])
{
if(isnull(params)) return SendClientMessage(playerid, 0xFFFFFFFF, \"Használat: /b [szöveg]\");
new string[128];
format(string, sizeof(string), \"(( %s: %s ))\", GetRPName(playerid), params);
ProxDetector(playerid, 20.0, string, 0xFFFFFFFF);
return 1;
}

Közelben levők láthatják amit írok
« Válasz #6 Dátum: 2015. december 30. - 10:38:02 »
0 Show voters
Koszonom:) Majd meg szeretnem probalni IsPlayerInRangeOfPoint-tal az lehetseges szerinted?

Nem elérhető BVZS

  • 487
    • Profil megtekintése
Közelben levők láthatják amit írok
« Válasz #7 Dátum: 2015. december 30. - 10:52:41 »
0 Show voters
Ebben benne van az \"IsPlayerInRangeOfPoint\".
 
forward ProxDetector(playerid, Float:range, szoveg[], szin);
public ProxDetector(playerid, Float:range, szoveg[], szin)
{
    new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
foreach(Player, i)
{
    if(IsPlayerInRangeOfPoint(i, range, x, y, z) && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
    {
   SendClientMessage(i, szin, szoveg);
    }
}
return 1;
}

Közelben levők láthatják amit írok
« Válasz #8 Dátum: 2015. december 30. - 16:32:13 »
0 Show voters
Nem jó, azt írja, hogy nincs definiálva sem az i, sem a foreach

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal