Szerző Téma: Telefon rendszer bug  (Megtekintve 544 alkalommal)

Telefon rendszer bug
« Dátum: 2014. Szeptember 24. - 11:32:00 »
0 Show voters
Hali!
Csinálgatom a telefon rendszeremet,ami már majdnem kész csak még pár bug van benne,ezeket szeretném kijavítani.
Az elsõ bug: tegyük fel van két játékos,mind a kettõnek van telefonja,ha \'A\' játékossal felhívom a \'B\' játékost,akkor aki felvette azaz a \'B\' játékos ha õ vele írok a chatbe,akkor az \'A\' játékos nem látja azt amit írok,helyette a \'B\' játékos kétszer látja a chatben egymás után azt amit írok,például: \"[Telefonban] XY Mondja: asd\"
Azt szeretném megtudni, hogy mi lehet a hiba oka,ha kicsit értelmetlenül írtam le akkor kérdezzetek,így tudtam csak leírni.
OnPlayerText rész:
 

public OnPlayerText(playerid, text[])
{
    new icchat[128];
new telefonchat[128];
    if(!pInfo[playerid][pLoggedin]) return SendClientMessage(playerid, COLOR_ULTRARED,\"(( Nem írhatsz a chatbe míg be nem jelentkezel! ))\");
    if (CallerLine[playerid] != INVALID_PLAYER_ID)
{
format(telefonchat, sizeof(telefonchat), \"[Telefonban] %s mondja: %s\", GetName(playerid), text);
SendClientMessage(CallerLine[playerid], COLOR_YELLOW, telefonchat); //elküldjük a szöveget annak a játékosnak akivel beszélünk
ProxDetector(20.0, playerid, telefonchat, COLOR_WHITE); //annak a körzetében elküldjük a szöveget aki telefonál
SetPlayerChatBubble(playerid, telefonchat, COLOR_WHITE, 20.0, 6000);
}
else
{
    format(icchat, sizeof(icchat), \"%s mondja: %s\", GetName(playerid), text);
ProxDetector(20.0, playerid, icchat, COLOR_WHITE);
    SetPlayerChatBubble(playerid, icchat, COLOR_WHITE, 20.0, 10000);
}
    return 0;
}

 
Stock rész ami meghívódik akkor amikor az egyik játékos felhívja a másikat:
 

stock HivoSzam(playerid,number)
{
id = INVALID_PLAYER_ID;
foreach(Player, i)
{
    if (pInfo[pLoggedin] && pInfo[pHivoszamElotag] && pInfo[pTelefonSzam] == number)
    {
        id = i;
        break;
}
}
if (id != INVALID_PLAYER_ID)
{
    new string[128];
SendClientMessage(playerid,COLOR_WHITE,\"(( Kicsöng... ))\");
SendClientMessage(playerid,COLOR_WHITE,\"(( Ha leakarod tenni: /telefonlerak ))\");
format(string, sizeof(string), \"(( Csörög a telefonod! Ha felakarod venni: /telefonfelvesz [Hívó: %s] ))\", GetName(playerid));
SendClientMessage(id, COLOR_WHITE, string);
        format(string, sizeof(string), \"* Valakinek csörög a telefonja.\");
ProxDetector(20.0,playerid, string, COLOR_PURPLE);
BeingCalled[id] = playerid;
SetPlayerAttachedObject(playerid, 6, 330, 6);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE);
return 1;
}
else SendClientMessage(playerid, COLOR_ULTRARED, \"(( Hívott számon az elõfizetõ nem kapcsolható! ))\");
return 1;
}

 
Itt pedig az a parancs amivel felvesszük a telefont:
 

CMD:telefonfelvesz(playerid, params[])
{
if (!pInfo[playerid][pTelefon])
{
SendClientMessage(playerid, COLOR_ULTRARED,\"(( Neked nincs telefonod! ))\");
return 1;
}
if (BeingCalled[playerid] == INVALID_PLAYER_ID)
{
    SendClientMessage(playerid, COLOR_ULTRARED,\"(( Nem csörög a telefonod! ))\");
    return 1;
}
if(pInfo[playerid][pTelefonBeKapcsolva] == 1)
{
BeingCalled[playerid] = playerid;
CallerLine[playerid] = BeingCalled[playerid];
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE);
BeingCalled[playerid] = INVALID_PLAYER_ID;
SetPlayerAttachedObject(playerid, 6, 330, 6);
}
else
{
SendClientMessage(playerid,COLOR_ULTRARED,\"(( A Telefonod ki van kapcsolva! ))\");
}
return 1;
}

 
Elõre is köszi,aki segít annak megy a +! :)
EDIT: Közben megoldottam,teljesen máshogy.
« Utoljára szerkesztve: 2014. Szeptember 24. - 14:01:32 írta Robi222 »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal