/count mit Radius und /goto funzt net

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
  • Hallo zusammen,
    Nach langem melde ich mich auch mal wieder mit einem Problem bzw heut mal mit mehreren...


    Ich habe mir ein Countdown sys rutnergeladen und wollte dieses auf einen Radius begrenzen was ich aber leider noch nicht geschafft habe. Immoment wird dieser cowntdown auf dem kompletten Server gezeigt was ich aber nicht möchte...


    hier der Text vom Countdown:


    public CountDown(num)
    {
    new str[2];
    if (num)
    {
    format(str, sizeof(str), "%d%d", num);


    GameTextForAll(str, 1001, 4); //Orange/bronze colour (standard for style 4)
    }
    else
    {
    GameTextForAll("~g~Go Go Go", 3000, 4); //Green colour
    Counting = false;
    }
    }



    Dann kommen wir zum zweiten Problem wo ich überhaupt net weiß warum...
    wenn ich /goto eingebe dann heißt es "Dir ist es nicht erlaubt diesen Befehl zu benutzen" Ich bin 1338 Admin auf meinem Server und bei jedem anderen AdminBefehl funzt es auch super. hin und wieder funzt es dann aber nur 4 oder 5mal dann sagt er wieder das ich keine rechte habe...
    Hier der Befehl:

    if(strcmp(cmd, "/goto", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: /goto [spielerid/teildesnamens]");
    return 1;
    }
    new Float:plocx,Float:plocy,Float:plocz;
    new plo;
    plo = ReturnUser(tmp);
    if (IsPlayerConnected(plo))
    {
    if(plo != INVALID_PLAYER_ID)
    {
    if (PlayerInfo[playerid][pAdmin] >= 1)
    {
    if(Spectate[playerid] != 255)
    {
    Spectate[playerid] = 256;
    }
    GetPlayerPos(plo, plocx, plocy, plocz);
    if(PlayerInfo[plo][pInt] > 0)
    {
    SetPlayerInterior(playerid,PlayerInfo[plo][pInt]);
    PlayerInfo[playerid][pInt] = PlayerInfo[plo][pInt];
    PlayerInfo[playerid][pLocal] = PlayerInfo[plo][pLocal];
    }
    if(PlayerInfo[playerid][pInt] == 0)
    {
    SetPlayerInterior(playerid,0);
    }
    if(plocz > 530.0 && PlayerInfo[plo][pInt] == 0) //the highest land point in sa = 526.8
    {
    SetPlayerInterior(playerid,1);
    PlayerInfo[playerid][pInt] = 1;
    }
    if (GetPlayerState(playerid) == 2)
    {
    if(PlayerInfo[playerid][pInt] >= 0)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, plocx, plocy+4, plocz);
    TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
    }
    else
    {
    SetPlayerPos(playerid,plocx,plocy+2, plocz);
    }
    SendClientMessage(playerid, COLOR_GRAD1, "Du wurdest teleportiert!");
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Dir ist es nicht erlaubt, diesen Befehl zu benutzen!");
    }
    }
    }
    }
    else
    {
    format(string, sizeof(string), "%d ist kein aktiver Spieler.", plo);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }

    Zitat

    naja aufm homeserver mit kumpel getestet und nix laggt von daher sollte nen richtiger server mit sowas keine probs haben

    *an Kopf schlag
    sowas kommt Raus wenn man erst absendet ohne nachzudenken. Bitte Leute Hirn einschalten beim Posten...

    4 Mal editiert, zuletzt von PaddyBoy ()

  • Das kann ich mir selbst nicht erklären :wacko: . Wäre nett wenn ihr mir auch helfen könntet...

  • if(strcmp(cmd, "/help", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    SendClientMessage(playerid, COLOR_GRAD1,"*** ACCOUNT *** /regeln /stats /w(whisper) /admins /mv (zum öffnen des Basetores) /mv1 (zum schließen des Basetores)");
    return 1;
    }
    }

  • ok danke dat hat geholfen mit return ^^ (schei* Leichtsinsfehler ^^) aber bei den zwei anderen sachen komm ich auch noch net weiter...
    danke im vorraus schon ma für´s helfen

    Zitat

    naja aufm homeserver mit kumpel getestet und nix laggt von daher sollte nen richtiger server mit sowas keine probs haben

    *an Kopf schlag
    sowas kommt Raus wenn man erst absendet ohne nachzudenken. Bitte Leute Hirn einschalten beim Posten...

  • ich push dat mal da ich immer noch die prob´s habe ^^

    Zitat

    naja aufm homeserver mit kumpel getestet und nix laggt von daher sollte nen richtiger server mit sowas keine probs haben

    *an Kopf schlag
    sowas kommt Raus wenn man erst absendet ohne nachzudenken. Bitte Leute Hirn einschalten beim Posten...

  • Versuch mal das:


    if(strcmp(cmd, "/goto", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: /goto [spielerid/teildesnamens]");
    return 1;
    }
    new Float:plocx,Float:plocy,Float:plocz;
    new plo;
    plo = ReturnUser(tmp);
    if (IsPlayerConnected(plo))
    {
    if(plo != INVALID_PLAYER_ID)
    {
    if (PlayerInfo[playerid][pAdmin] >= 1)
    {
    if(Spectate[playerid] != 255)
    {
    Spectate[playerid] = 256;
    }
    GetPlayerPos(plo, plocx, plocy, plocz);
    if(PlayerInfo[plo][pInt] > 0)
    {
    SetPlayerInterior(playerid,PlayerInfo[plo][pInt]);
    PlayerInfo[playerid][pInt] = PlayerInfo[plo][pInt];
    PlayerInfo[playerid][pLocal] = PlayerInfo[plo][pLocal];
    }
    if(PlayerInfo[playerid][pInt] == 0)
    {
    SetPlayerInterior(playerid,0);
    }
    if(plocz > 530.0 && PlayerInfo[plo][pInt] == 0) //the highest land point in sa = 526.8
    {
    SetPlayerInterior(playerid,1);
    PlayerInfo[playerid][pInt] = 1;
    }
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, plocx, plocy+4, plocz);
    TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
    }
    else
    {
    SetPlayerPos(playerid,plocx,plocy+2, plocz);
    }
    SendClientMessage(playerid, COLOR_GRAD1, "Du wurdest teleportiert!");
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Dir ist es nicht erlaubt, diesen Befehl zu benutzen!");
    }
    }
    }
    else
    {
    format(string, sizeof(string), "%d ist kein aktiver Spieler.", plo);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }

  • ich kann dir beim count helfen :)



    #include <a_samp>
    forward Count(playerid);
    new counter[MAX_PLAYERS];
    new cnt[MAX_PLAYERS];
    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");
    return 1;
    }




    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/count", cmdtext, true) == 0)
    {


    cnt[playerid] = SetTimerEx("Count",1000,1,"i",playerid);
    return 1;
    }
    return 0;
    }
    forward PlayerToPoint(Float:radi, playerid, Float:xs, Float:ys, Float:zs);
    public PlayerToPoint(Float:radi, playerid, Float:xs, Float:ys, Float:zs)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    tempposx = (oldposx -xs);
    tempposy = (oldposy -ys);
    tempposz = (oldposz -zs);
    if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    return 1;
    }
    }
    return 0;
    }
    stock GameTextForNearPlayers(playerid,Text[],time,Style)
    {
    new Float:pos[3];
    GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
    for(new i = 0;i<MAX_PLAYERS;i++){
    if(IsPlayerConnected(i)){
    if(PlayerToPoint(4.0,i,pos[0],pos[1],pos[2]))GameTextForPlayer(i,Text,time,Style);}}
    return 1;
    }
    public Count(playerid)
    {
    switch(counter[playerid])
    {
    case 0:GameTextForNearPlayers(playerid,"~w~->5<-",1000, 3);
    case 1:GameTextForNearPlayers(playerid,"~w~->4<-",1000, 3);
    case 2:GameTextForNearPlayers(playerid,"~w~->3<-",1000, 3);
    case 3:GameTextForNearPlayers(playerid,"~B~->2<-",1000, 3);
    case 4:GameTextForNearPlayers(playerid,"~R~->1<-",1000, 3);
    case 5:{GameTextForNearPlayers(playerid,"~G~GOOOOOO",1000, 3);counter[playerid]= 0;KillTimer(cnt[playerid]);}
    }
    counter[playerid]++;
    return 1;
    }


    den sehen nur die die in der nähe von dem sind der ihn ausgelöst hat

  • sry das ich lang net geantwortet habe ^^
    thx für die antworten die befehle funzen ^^

    Zitat

    naja aufm homeserver mit kumpel getestet und nix laggt von daher sollte nen richtiger server mit sowas keine probs haben

    *an Kopf schlag
    sowas kommt Raus wenn man erst absendet ohne nachzudenken. Bitte Leute Hirn einschalten beim Posten...

    2 Mal editiert, zuletzt von PaddyBoy ()