Problem mit Geschenken (PLS DRINGEND HELP)

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
  • Also wenn ich auf ein Pickup gehe dann steht da das ich ein geschenk erhalten hab ...


    Hier der Geschenke Funktion hab ihn unter OnPlayerPickUpPickup


    //Geschenke
    for(new x = 0; x < MAX_GIFTS; x++)
    {
    new giftstring[400];
    if(GiftUsed[x] == true && pickupid == Gift[x] && Picked[playerid] == 0)
    {
    switch(random(7))
    {
    case 0: {
    new rand = (5000 + random(40000));
    GivePlayerMoney(playerid, rand);
    format(giftstring, sizeof(giftstring), "~r~Herzlichen Glueckwunsch!~n~~w~Gewinn : ~g~$%d", rand);
    GameTextForPlayer(playerid, giftstring, 4000, 3);
    format(giftstring, sizeof(giftstring), "{FF3C00}Herzlichen Glueckwunsch! {FFFFFF}Du hast als Belohnung Geld bekommenn {FF3C00}$%d!", rand);
    SendClientMessage(playerid, WEISS, giftstring);
    }
    case 1: {
    SetPlayerHealth(playerid, 100);
    format(giftstring, sizeof(giftstring), "~r~Herzlichen Glueckwunsch!~n~~w~Gewinn : ~y~eine Ueberraschung");
    GameTextForPlayer(playerid, giftstring, 4000, 3);
    SendClientMessage(playerid, WEISS, "Du hast als Belohnung {FF3C00}eine Ueberraschung bekommen! {FFFFFF}Dein {FF3C00}Leben {FFFFFF}ist wieder voll!");
    }
    case 2: {
    SetPlayerArmour(playerid, 100);
    format(giftstring, sizeof(giftstring), "~r~Herzlichen Glueckwunsch!~n~~w~Gewinn : ~y~ Armour");
    GameTextForPlayer(playerid, giftstring, 4000, 3);
    SendClientMessage(playerid, WEISS, "{FF3C00}Herzlichen Glueckwunsch! {FFFFFF}Du hast {FF3C00}Armour{FFFFFF} bekommen!");
    }
    case 3: {
    new rand = (5000 + random(40000));
    GivePlayerMoney(playerid, rand);
    format(giftstring, sizeof(giftstring), "~r~Herzlichen Glueckwunsch!~n~~w~Gewinn: ~g~$%d", rand);
    GameTextForPlayer(playerid, giftstring, 4000, 3);
    format(giftstring, sizeof(giftstring), "{FF3C00}Herzlichen Glueckwunsch! {FFFFFF}Du hast als Belohnung Geld bekommen {FF3C00}$%d!", rand);
    SendClientMessage(playerid, WEISS, giftstring);
    }
    case 4: {
    new rand = (5000 + random(40000));
    GivePlayerMoney(playerid, rand);
    format(giftstring, sizeof(giftstring), "~r~Herzlichen Glueckwunsch!~n~~w~Gewinn: ~g~$%d", rand);
    GameTextForPlayer(playerid, giftstring, 4000, 3);
    format(giftstring, sizeof(giftstring), "{FF3C00}Herzlichen Glueckwunsch! {FFFFFF}Du hast als Belohnung Geld bekommen {FF3C00}$%d!", rand);
    SendClientMessage(playerid, WEISS, giftstring);
    }
    case 5: {
    Spieler[playerid][pRespektFromPayday]+=5;
    format(giftstring, sizeof(giftstring), "~r~Herzlichen Glueckwunsch!~n~~w~Gewinn : ~y~eine Ueberraschung");
    GameTextForPlayer(playerid, giftstring, 4000, 3);
    SendClientMessage(playerid, WEISS, "Du hast als Belohnung {FF3C00}eine Ueberraschung bekommen! {FFFFFF}Du hast {FF3C00}5 Respektpunkte {FFFFFF}bekommen!");
    }
    case 6: {
    Spieler[playerid][pLevel]+=1;
    format(giftstring, sizeof(giftstring), "~r~Herzlichen Glueckwunsch!~n~~w~Gewinn : ~y~eine Ueberraschung");
    GameTextForPlayer(playerid, giftstring, 4000, 3);
    SendClientMessage(playerid, WEISS, "Du hast als Belohnung {FF3C00}eine Ueberraschung bekommen! {FFFFFF}Du hast {FF3C00}1 Level {FFFFFF}bekommen!");
    }
    }
    new zone[MAX_ZONE_NAME], pname[MAX_PLAYER_NAME];
    GetPlayer2DZone(playerid, zone, sizeof(zone));
    GetPlayerName(playerid, pname, sizeof(pname));
    format(giftstring, sizeof(giftstring), "Der Spieler{BC0000} %s{FFFFFF} hat ein{FF3C00} Geschenk{FFFFFF} im Stadtteil {0069FF}%s{FFFFFF} gefunden !", pname, zone);
    SendClientMessageToAll(WEISS, giftstring);
    DestroyPickup(Gift[x]);
    Spieler[playerid][gFound]++;
    Picked[playerid] = 1;
    }
    }
    Picked[playerid] = 0;


    Ich will nur dass wenn man auf das Geschenk geht den Geschenkinhalt erhaltet... :/

    Einmal editiert, zuletzt von CengizHan ()

  • Und was funktioniert da jetzt nicht?


    Also sobald ich den Befehl /addgift eingebe werden all die anderen Pickups unter OnPlayerPickUpPickup also wenn cih auf die anderen Pickups dann gehe heisst es dass ich ein geschenk hab...


    zB gebe /addgift ein aber gehe zu einem healpickup dann steht da "du hast ein geschenk blabla" Ich will nur erst das geschenk wnen ich auf das geschenke pickup gehe und nicht wenn ich zu anderen pickups ...


    hier der befehl:


    COMMAND:addgift(playerid,params[])
    {
    if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
    if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
    if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,GRAU,"Du bist kein "#SERVERTAG" Teammitglied./Du hast nicht den jeweiligen Adminrang.");
    new EventName[128];
    if(sscanf(params,"s[128]",EventName)) return SendClientMessage(playerid, WRONGCMD, "Benutze: /addgift [EventName]");
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new rand = random(sizeof(RandomModel));
    Gift[giftCounter] = CreatePickup(RandomModel[rand][0], 1, x + 3, y + 1, z, GetPlayerVirtualWorld(playerid));
    //Gift[giftCounter] = CreateDynamicPickup(RandomModel[rand][0], 1, x + 3, y + 1, z,-1,-1,-1,100.0);
    GiftUsed[giftCounter] = true;
    giftCounter++;
    new string[500 + MAX_ZONE_NAME], zone[MAX_ZONE_NAME];
    GetPlayer2DZone(playerid, zone, sizeof(zone));
    format(string, sizeof(string), "{FF3C00}%s | {FF0000}Ein{FF3C00} Geschenk{FFFFFF} ist im Stadtteil {0069FF}%s versteckt!{FFFFFF} Finde es schnell!",EventName, zone);
    SendClientMessageToAll(WEISS, string);
    return 1;
    }


    PS: kann man die FUnktion umschreiben ohne diese Funktion?
    for(new x = 0; x < MAX_GIFTS; x++)

  • Oh weh, da bluten mir ja fast die Augen *duck* Da sollte ganz schnell an der Sauberkeit des Scripts gearbeitet werden.
    Wenn du willst, können wir uns da morgen via TeamViewer drum kümmern, heute bin ich allerdings zu müde dafür und hab selbst noch einiges zu tun.


    So viel unnötiges Zeug wie da momentan drin steht, hab ich auch keinen Überblick mehr, was da so passiert ^^


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'