Text nur in bestimmtem Radius

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
  • hi...
    wie kann ich das machen, dass eine client message nur in einem bestimmten radius sichtbar ist? also dass sie zwar an alle gesendet wird, aber nur für die leute sichtbar ist, die in einem radius von z.b. 60 metern sind...
    kann mir pls jemand helfen?


    mfg Marshall

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

  • würde mal sagen mit if playertopoint?

    ich meine aber, dass ein spieler einen command schreibt, und dass dann ein text bei allen spielern erscheint,die in seiner nähe sind...

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

  • mit Client Messag gehts glaube nicht nur mit string :



    new string[128];
    format(string, sizeof(string), "Text");
    ProxDetector(Radius hier eintragen.0, playerid, string,farbe hier eintragen);



    Edit : Hier Ein Bsp.


    if(strcmp(cmd, "/beispiel", true) == 0)
    {
    new string[128];
    format(string, sizeof(string), "Wenn du diesen Beispiel Test sehen kannst bist du im Radius von 20.0");
    ProxDetector(20.0, playerid, string,0x0000FF00);
    }

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

    Einmal editiert, zuletzt von Dog ()

  • ich bekomme immer 5 warnings:

    Code
    C:\Spiele\Rockstar Games\GTA San Andreas\gamemodes\xgf.pwn(9967) : warning 219: local variable "string" shadows a variable at a preceding level
    C:\Spiele\Rockstar Games\GTA San Andreas\gamemodes\xgf.pwn(9969) : warning 202: number of arguments does not match definition
    C:\Spiele\Rockstar Games\GTA San Andreas\gamemodes\xgf.pwn(9969) : warning 202: number of arguments does not match definition
    C:\Spiele\Rockstar Games\GTA San Andreas\gamemodes\xgf.pwn(9969) : warning 202: number of arguments does not match definition
    C:\Spiele\Rockstar Games\GTA San Andreas\gamemodes\xgf.pwn(9969) : warning 202: number of arguments does not match definition


    hier mal der command:
    if(strcmp(cmdtext, "/test",true) == 0)
    {
    new string[128];
    format(string, sizeof(string), "Nur ein Test!");
    ProxDetector(60.0, playerid, string,COLOR_YELLOW);
    return 1;
    }


    hab ich was falsch gemacht?

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

  • hmm hast du unter onplayercommand schon string stehen ? wenn ja mach einfach


    aus string[128] = string4[128];


    wenn ich die zeilen wüsste von den Warnings kann ich dir den rest auch sagen.

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • aso also Es gibt da einen befehl da bekommen aber alle Geld die Online Sind
    ich versuche einen zu scripten warte


  • new Float:spX, Float:spY, Float:spZ;
    GetPlayerPos(playerid, spX, spY, spZ);
    SendRadiusMessage(180.0, COLOR_WHITE, "Hallo leute", spX, spY, spZ); ///die 180 in dein gewünschten Radius ändern.

  • Ja kenn ich, also ich hab da so eine Idee da kann dann Mafia eine Geisel nehmen und in seine Base verfrachten, dort in der Base ist dann ein /kidnap Symbol und dann wir ein Timer gestartet wo die Polizei die Geisel befreien muss wenn der Timer abgelaufen ist muss einer der Mafia Kerle den Befehl eingeben /unkidnap oder so das die Geisel an seinen Spawn gesetzt wird und alle Spieler in der Nähe von dem, der /unkidnap eingibt Geld für die Geiselnahmebekommen. Hab schon überlegt eine Gangzone zu erstellen und dann bekommen alle in der Gangzone das Geld aber das ist mir eigt. zu Umständlich.


    //Edit : Shad schon besser aber keine Message senden sondern Geld, geht das?


    Mfg, René

  • Du brauchst diese Include
    Ocmd
    dann musst du Ganz oben im Script das hier eintragen:
    #include <ocmd>


    dann gehst du Irgendwo im Script am besten Ganz Unten und fügst das hier ein:
    ocmd:geldgeben(playerid,params[])
    {
    new
    pid,
    geld,
    string[128],
    string2[128];
    if(sscanf(params,"ud",pid,geld)) return SendClientMessage(playerid,COLOR_YELLOW,"Benutzung:/geldgeben [ID] [GELD]");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit der angegebenen ID ist Online");
    if(SpielerInfo[playerid][Administrator] < 5) return SendClientMessage(playerid,COLOR_RED,"Du bist kein AdminLevel 5");
    format(string,sizeof(string),"Du hast %s %d $ gegeben",gPlayerName[pid],geld);
    format(string2,sizeof(string2),"Du hast von %s %d $ bekommen!",gPlayerName[playerid], geld);
    SendClientMessage(playerid,COLOR_VIOLET,string);
    SendClientMessage(pid,COLOR_VIOLET,string2);
    GivePlayerMoney(pid,geld);
    return 1;
    }


    Sry das ist nur ein Befehl das man einen Spieler Geld Gibt

  • ocmd:pay(playerid, params[])
    {
    new Float:spX, Float:spY, Float:spZ, pID, betrag;
    GetPlayerPos(playerid, spX, spY, spZ);
    if(sscanf(params, "dd",pID, betrag))
    {
    SendClientMessage(playerid, WHITE, "Benutze bitte: /pay [id] [Betrag]");
    return 1;
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,COLOR_RED,"Falsche ID");
    }
    if(betrag < 1) { return SendClientMessage(playerid, COLOR_RED, "Ungültiger Betrag."); }
    if(GetPlayerMoney(playerid) >= betrag && IsPlayerInRangeOfPoint(pID,30,spX,spY,spZ))
    {
    GivePlayerMoney(playerid, -betrag);
    GivePlayerMoney(pID, betrag);
    return 1;
    }
    else { return SendClientMessage(playerid, COLOR_RED, "Du hast nicht genügend Geld oder der Spieler ist zu weit weg."); }
    }


    so? Damit gibst du einem Spieler geht der im Radius von 30 Metern ist.

  • ocmd:payplayer(playerid, params[])
    {
    #pragma unused params
    new BIds;
    new Float:spX, Float:spY, Float:spZ, betrag;
    GetPlayerPos(playerid, spX, spY, spZ);
    if(sscanf(params, "d", betrag))
    {
    SendClientMessage(playerid, WHITE, "Benutze bitte: /pay [Betrag]");
    return 1;
    }
    if(betrag < 1) { return SendClientMessage(playerid, COLOR_RED, "Ungültiger Betrag."); }
    if(GetPlayerMoney(playerid) >= betrag)
    {
    if(IsPlayerInRangeOfPoint(BIds,30,spX,-spY,spZ))
    {
    GivePlayerMoney(BIds, betrag);
    return 1;
    }
    }
    else { return SendClientMessage(playerid, COLOR_RED, "Du hast nicht genügend Geld."); }
    }