gametext wenn spieler an position x ist

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • hey,


    ich wollte mal fragen wie man es machen kann, das wenn ein spieler an position xyz steht, das er einen gametext bekommet.


    also ich möchte gerne wissen wo man das reinscripten muss

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco

  • Hmm.. setz am besten einen Timer.
    Machs z.B. so:
    new timer;
    public OnGameModeInit()
    {
    SetTimer("timer",1000,1);
    //...
    return 1;
    }


    public timer()
    {
    for(new playerid; playerid<GetMaxPlayers(); playerid++)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInRangeOfPoint(...);
    {
    //... GameText
    }
    }
    }
    return 1;
    }

  • @FireFan
    Wieso nen Timer ?


    Er kann doch auch nur mit if(IsPlayerInRangeOfPoint(playerid,X,Y,Z); und dann Gametext (KP)
    machen oder nicht ? ist doch leichter als mit Timer

  • mhm... krieg ein warning:
    bei

    Zitat

    for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)

    heir das warning:

    Zitat


    C:\Users\Marco\Desktop\ Server\gamemodes\Server.pwn(2441) : warning 219: local variable "playerid" shadows a variable at a preceding level
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco

  • mhm... klappt nicht der text erscheint gar nicht... habs genau so gemacht

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco


  • ja klar, ich vergas :D


    also richtig is so:

    public timer()
    {
    for(new i;i<MAX_PLAYERS;++)
    {
    if(IsPlayerInRangeOfPoint(i,X,Y,Z) return GameTextForPlayer(playerid, "Blubb", 3000, 1);
    }
    }


    Wobeiich es Trotzdem wärmstens Empfehle es über OnplayerPickup zu machen...

  • ja aber wie gesagt
    am Besten ist OnPlayerPickup weil selbst wenn du ein Pickup erstellen must, beim timer wird jede sekunde jeder spieler gechekt ob er da steht -.- bei 50spielern is da dann pickup schneller und sparsamer...


    und onplayerupdate verwendet eh keiner des is der größte fail dens gibt...


    alsi von der reihenfolge der sparsamkeit also der ressourcen nutzung;
    1:OnPlayerPickupPickup
    2:Timer(bei vielen usern schlecht)
    3:OnPlayerUpdate(vergiss es!)


    mfg

  • wie müsste das den unter onplayerpickup aussehen?


    //edit: geht nicht... der gametext wird nicht angezeigt... habs so:

    Zitat

    public dutytext(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid,25, 197.2105,168.9738,1003.0234))return GameTextForPlayer(playerid, "~b~/duty", 3000, 1);
    return 1;
    }


    LG

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco

    Einmal editiert, zuletzt von [MM]Marco ()

  • so
    if(IsPlayerInRangeOfPoint(playerid,Range, x,y,z))
    {
    GameTextForPlayer(playerid, "/duty", 5000, 4);
    }


    oder unter OnPlayerPickUpPickup
    if(pickupid == (Hier dein Pickup name)
    {
    GameTextForPlayer(playerid, "/duty", 5000,4);
    }

  • also ich glaub ich bin einfach zu dumm... bei mir wird nichts angezeigt... och hab das jetzt so:

    Zitat

    if(pickupid == dutypoint)
    {
    GameTextForPlayer(playerid, "/duty", 5000,4);
    SendClientMessage(playerid,COLOR_ROT,"Test");
    }

    aber selbst das sendclientmessage wird nicht angezeigt. dabei hab ich das pickup schon auf type 2

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco