Happy Hour Script Bug

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,
    noch ein Poblem ist, das ich eine Happy Hour funktion eingebaut hab.(oder zumindest versucht)
    Es sollte so sein, dass ein Spieler im Server eine von mir vordefinierte zufällige Waffen enthällt von mehreren möglichen und jede 4 min.
    Es wird auch allen angezeigt, das Spieler soundso eine zufällige Waffe erhalten hat.
    Das klappt auch alles ganz gut, bisauf, das jeder Spieler im Server zur gleichen Zeit die gleiche Zufallswaffe bekommt.
    Es sollte aber nur ein Zufälliger Spieler von den ganzen Spielern im Server eine bekommen.
    Hoffentlich kann einer den Fehler finden.



    forward HappyH(playerid);


    public OnGameModeInit()
    {
    SetTimer("HappyH",240000,1);
    return 1;


    }


    new const ValidWeapons[22][2] =
    {
    {22, 200}, //9mm
    {23, 150},//9mmsilenced
    {24, 100},//DEagle
    {25, 150},//Shotgun
    {26, 150},//ShawnOFF
    {18, 4},//Molotov
    {16, 4},//Grenade
    {27, 150},//CombatShotgun
    {28, 200},//MicroSmg
    {9, 0},//Chainsaw
    {29, 200}, //MP5
    {30, 250},//AK47
    {31, 250},//M4
    {32, 200},//Tec9
    {33, 100},//CountryRifle
    {34, 100},//SniperRifle
    {35, 15},//RocketLauncher
    {37, 600},//Flamethrower
    {38, 500},//Minigun
    {10, 0},//PDildo
    {8, 0},//Katana
    {4, 0}//Knife
    };


    public HappyH(playerid)
    {


    new r = random(sizeof ValidWeapons);
    for(new l; l < MAX_PLAYERS; l ++) {
    GivePlayerWeapon(l, ValidWeapons[r][0], ValidWeapons[r][1]);
    SendClientMessage(playerid,0xFF66FFAA, "Happy Hour!! You've got a random weapon gift!");
    new name[ 24 ], string[ 64 ];
    GetPlayerName( playerid, name, 24 );
    format( string, sizeof(string), "~p~%s has got a random weapon gift!!", name );
    GameTextForAll( string, 5000, 5 );

    }

    return 1;
    }



    Danke schon mal.


    //edit


    ich konnte dies bis jetzt nur mit insgesammt 2 Spielern im Server testen und nur über LAN.
    Hat das womöglich irgendwelche Auswirkung auf diese Funktion? Ich würd mal auf nein tippen.

  • public OnGameModeInit()
    {
    SetTimer("HappyH",240000,1);
    return 1;


    }


    Löschen und in OnPlayerConnect:


    public OnPlayerConnect(playerid)
    {
    SetTimerEx("HappyH",240000,1,"d",playerid);
    return 1;


    }

    Änder dein HappyH in:


    public HappyH(playerid)
    {


    new r = random(sizeof ValidWeapons);
    GivePlayerWeapon(playerid, ValidWeapons[r][0], ValidWeapons[r][1]);
    SendClientMessage(playerid,0xFF66FFAA, "Happy Hour!! You've got a random weapon gift!");
    new name[ 24 ], string[ 64 ];
    GetPlayerName( playerid, name, 24 );
    format( string, sizeof(string), "~p~%s has got a random weapon gift!!", name );
    GameTextForAll( string, 5000, 5 );

    return 1;
    }

  • SetTimerEx bei OnPlayerConnect ;)

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • hi,
    vielen Dank, ich werde es sofort, sobald ich ein paar Player im Server habe testen, aber es sieht sonmal gut aus und ein weiterer kleiner Bug wurde auch noch behoben. :thumbup:


    Wie kann ich azeigen lassen, dass ein bestimmter Spieler die und die Waffe erhalten hat?

    public HappyH(playerid)
    {


    new r = random(sizeof ValidWeapons);
    GivePlayerWeapon(playerid, ValidWeapons[r][0], ValidWeapons[r][1]);
    SendClientMessage(playerid,0xFF66FFAA, "Happy Hour!! You've got a random weapon gift!");
    new name[ 24 ], string[ 64 ];
    GetPlayerName( playerid, name, 24 );
    format( string, sizeof(string), "~p~%s has got a random weapon gift!!", name ); //das ist die Nachricht, dass ein bestimmter Player eine Waffe erhalten hat, aber //welche würde ich auch gerne angezeigt bekommen .
    GameTextForAll( string, 5000, 5 );


    return 1;
    }


    wäre echt klasse, wenn jemand eine Rat wüsste. ;)


    //edit code übersichtlicher eingefügt.

  • Naja dann müsste es doch so sein, oder?:


    public HappyH(playerid)
    {


    new r = random(sizeof ValidWeapons);
    GivePlayerWeapon(playerid, ValidWeapons[r][0], ValidWeapons[r][1]);
    SendClientMessage(playerid,0xFF66FFAA, "Happy Hour!! You've got a random weapon gift!");
    new name[ 24 ], string[ 64 ];
    GetPlayerName( playerid, name, 24 );
    format( string, sizeof(string), "~p~%s has got a random weapon gift!!", name, ValidWeapons[r][0] ); //das ist die Nachricht, dass ein bestimmter Player eine Waffe erhalten hat, aber //welche würde ich auch gerne angezeigt bekommen .
    GameTextForAll( string, 5000, 5 );
    return 1;
    }


    Oder? XD

  • hmm, ne klappt nicht.
    Wird immer noch nur "Spieler" has got a random weapon gift!!
    angezeigt.


    Darunter sollte jetzt noch z.B. stehen: ! Minigun !
    aber die Namen sollte hallt mit den der zufällig vergebenen Waffen übereinstimmen.