PDA

Просмотр полной версии : [Вопрос] Видимость чата



Айболит
11.07.2014, 19:31
Доброго времени суток, ув. форумчане п-п.р, такая проблема что : Если написать в F6 то видно и 0 иду 1 но как только подойти близко к иду 1 например 0 уже не будет видеть, то есть то что я напишу я не увижу а хотя видно другому человеку будет, если же я отойду от него то я видеть буду, я знаю что это может быть..


public OnPlayerText(playerid, text[])
{
//========RP Чат, который в F6========//
//new mescolor = 0xFFFFFFFF;
new string[256];
new sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername, sizeof(sendername));
new Float:xpos,Float:ypos,Float:zpos;
GetPlayerPos(playerid,xpos,ypos,zpos);
if(Player[playerid][pRas] == 1) //Европеец.
{
for(new i=0;i<MAX_PLAYERS;i++)
{
format(string,sizeof string,"{FF9600}[RPC] {FFFFFF}{FFFFFF}[Европейский акцент]{FFFFFF}{E6E6E6} %s говорит: %s",sendername,text);
if(!IsPlayerConnected(i) || !IsPlayerInRangeOfPoint(i, 50.0, xpos, ypos, zpos)) continue;
SendClientMessage(i, 0xFFFFFFFF, string);
if(RPChat)
{
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,0,1000,1); }
GetPlayerName(playerid, sendername, sizeof(sendername));
SetPlayerChatBubble(playerid, text, -1, 20.0, 10000);
return false;
}
}
}
if(Player[playerid][pRas] == 2) //Афроамериканец.
{
for(new i=0;i<MAX_PLAYERS;i++)
{
format(string,sizeof string,"{FF9600}[RPC] {FFFFFF}{FFFFFF}[Афроамериканский акцент]{FFFFFF}{E6E6E6} %s говорит: %s",sendername,text);
if(!IsPlayerConnected(i) || !IsPlayerInRangeOfPoint(i, 50.0, xpos, ypos, zpos)) continue;
SendClientMessage(i, 0xFFFFFFFF, string);
if(RPChat)
{
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,0,1000,1); }
GetPlayerName(playerid, sendername, sizeof(sendername));
SetPlayerChatBubble(playerid, text, -1, 20.0, 10000);
return false;
}
}
}
if(Player[playerid][pRas] == 3) //Латиноамериканец.
{
for(new i=0;i<MAX_PLAYERS;i++)
{
format(string,sizeof string,"{FF9600}[RPC] {FFFFFF}{FFFFFF}[Латиноамериканский акцент]{FFFFFF}{E6E6E6} %s говорит: %s",sendername,text);
if(!IsPlayerConnected(i) || !IsPlayerInRangeOfPoint(i, 50.0, xpos, ypos, zpos)) continue;
SendClientMessage(i, 0xFFFFFFFF, string);
if(RPChat)
{
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,0,1000,1); }
GetPlayerName(playerid, sendername, sizeof(sendername));
SetPlayerChatBubble(playerid, text, -1, 20.0, 10000);
return false;
}
}
}
if(Player[playerid][pRas] == 4) //Японец.
{
for(new i=0;i<MAX_PLAYERS;i++)
{
format(string,sizeof string,"{FF9600}[RPC] {FFFFFF}{FFFFFF}[Японский акцент]{FFFFFF}{E6E6E6} %s говорит: %s",sendername,text);
if(!IsPlayerConnected(i) || !IsPlayerInRangeOfPoint(i, 50.0, xpos, ypos, zpos)) continue;
SendClientMessage(i, 0xFFFFFFFF, string);
if(RPChat)
{
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,0,1000,1); }
GetPlayerName(playerid, sendername, sizeof(sendername));
SetPlayerChatBubble(playerid, text, -1, 20.0, 10000);
return false;
}
}
}
if(Player[playerid][pRas] == 5) //Итальянец.
{
for(new i=0;i<MAX_PLAYERS;i++)
{
format(string,sizeof string,"{FF9600}[RPC] {FFFFFF}{FFFFFF}[Итальянский акцент]{FFFFFF}{E6E6E6} %s говорит: %s",sendername,text);
if(!IsPlayerConnected(i) || !IsPlayerInRangeOfPoint(i, 50.0, xpos, ypos, zpos)) continue;
SendClientMessage(i, 0xFFFFFFFF, string);
if(RPChat)
{
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,0,1000,1); }
GetPlayerName(playerid, sendername, sizeof(sendername));
SetPlayerChatBubble(playerid, text, -1, 20.0, 10000);
return false;
}
}
}
if(Player[playerid][pRas] == 6) //Еврей.
{
for(new i=0;i<MAX_PLAYERS;i++)
{
format(string,sizeof string,"{FF9600}[RPC] {FFFFFF}{FFFFFF}[Еврейский акцент]{FFFFFF}{E6E6E6} %s говорит: %s",sendername,text);
if(!IsPlayerConnected(i) || !IsPlayerInRangeOfPoint(i, 50.0, xpos, ypos, zpos)) continue;
SendClientMessage(i, 0xFFFFFFFF, string);
if(RPChat)
{
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,0,1000,1); }
GetPlayerName(playerid, sendername, sizeof(sendername));
SetPlayerChatBubble(playerid, text, -1, 20.0, 10000);
return false;
}
}
}
//==================================//
return 0;
}

DeimoS
11.07.2014, 19:57
Не цените вы память...
Пробуйте

public OnPlayerText(playerid, text[])
{
//========RP Чат, который в F6========//
new string[144];
GetPlayerName(playerid, string, MAX_PLAYER_NAME);
new Float: xpos, Float: ypos, Float: zpos;
GetPlayerPos(playerid, xpos, ypos, zpos);
switch(Player[playerid][pRas])
{
case 1: //Европеец.
format(string, sizeof(string), "[RPC] {FFFFFF}[Европейский акцент]{E6E6E6} %s говорит: %s", sendername, text);
case 2: //Афроамериканец.
format(string, sizeof(string), "[RPC] {FFFFFF}[Афроамериканский акцент]{E6E6E6} %s говорит: %s", sendername, text);
case 3: //Латиноамериканец.
format(string, sizeof(string), "[RPC] {FFFFFF}[Латиноамериканский акцент]{E6E6E6} %s говорит: %s", sendername, text);
case 4: //Японец.
format(string, sizeof(string), "[RPC] {FFFFFF}[Японский акцент]{E6E6E6} %s говорит: %s", sendername, text);
case 5: //Итальянец.
format(string, sizeof(string), "[RPC] {FFFFFF}[Итальянский акцент]{E6E6E6} %s говорит: %s", sendername, text);
case 6: //Еврей.
format(string, sizeof(string), "[RPC] {FFFFFF}[Еврейский акцент]{E6E6E6} %s говорит: %s", sendername, text);
}
for(new i = GetMaxPlayers(); i != -1; i--)
{
if(!IsPlayerConnected(i) || !IsPlayerInRangeOfPoint(i, 50.0, xpos, ypos, zpos)) continue;
SendClientMessage(i, 0xFF9600FF, string);
}
if(!RPChat) return 0;
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,0,1000,1);
GetPlayerName(playerid, string, MAX_PLAYER_NAME);
SetPlayerChatBubble(playerid, text, -1, 20.0, 10000);
//==================================//
return 0;
}

Айболит
11.07.2014, 20:12
Не цените вы память...
Пробуйте

public OnPlayerText(playerid, text[])
{
//========RP Чат, который в F6========//
new string[144];
GetPlayerName(playerid, string, MAX_PLAYER_NAME);
new Float: xpos, Float: ypos, Float: zpos;
GetPlayerPos(playerid, xpos, ypos, zpos);
switch(Player[playerid][pRas])
{
case 1: //Европеец.
format(string, sizeof(string), "[RPC] {FFFFFF}[Европейский акцент]{E6E6E6} %s говорит: %s", sendername, text);
case 2: //Афроамериканец.
format(string, sizeof(string), "[RPC] {FFFFFF}[Афроамериканский акцент]{E6E6E6} %s говорит: %s", sendername, text);
case 3: //Латиноамериканец.
format(string, sizeof(string), "[RPC] {FFFFFF}[Латиноамериканский акцент]{E6E6E6} %s говорит: %s", sendername, text);
case 4: //Японец.
format(string, sizeof(string), "[RPC] {FFFFFF}[Японский акцент]{E6E6E6} %s говорит: %s", sendername, text);
case 5: //Итальянец.
format(string, sizeof(string), "[RPC] {FFFFFF}[Итальянский акцент]{E6E6E6} %s говорит: %s", sendername, text);
case 6: //Еврей.
format(string, sizeof(string), "[RPC] {FFFFFF}[Еврейский акцент]{E6E6E6} %s говорит: %s", sendername, text);
}
for(new i = GetMaxPlayers(); i != -1; i--)
{
if(!IsPlayerConnected(i) || !IsPlayerInRangeOfPoint(i, 50.0, xpos, ypos, zpos)) continue;
SendClientMessage(i, 0xFF9600FF, string);
}
if(!RPChat) return 0;
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,0,1000,1);
GetPlayerName(playerid, string, MAX_PLAYER_NAME);
SetPlayerChatBubble(playerid, text, -1, 20.0, 10000);
//==================================//
return 0;
}

Спасибо больше, там чуток вы ошиблись с переменными, но нечего исправил, работает.. И да, спасибо за такую оптимизацию,буду знать..