[HILFE] Gunshop Probleme

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,


    ich habe seit ca. 1 std. folgendes problem, ich habe 2 Gusnhops erstellt einen LSPD Gunshop und einen für eine andere Fraktion, /buygun und /heal klappt einwandfrei, nur es kann jeder in den Gunshop rein, sprich, ich habe einen Gusnhop für Fraktion 12 erstellt, aber jeder kann rein egal ob zivi oder sonst wer :/ wie mache ich das, dass nur Fraktion 12 in den Gunshop kann ? Hier ist das script von /buygun schätze mal das liegt daran oder ?


    if (strcmp(cmd, "/buygun", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(GetPlayerMoney(playerid) < 1)
    {
    SendClientMessage(playerid, COLOR_GREY, " You dont have enough money with you !");
    return 1;
    }
    new gun;
    new gunid[16];
    new gunstring1[256];
    new gunstring2[256];
    new gunstring3[256];
    new gunstring4[256];
    new gunstring5[256];
    new infostring[256];
    new guncharge;
    new ammocharge;
    new location = PlayerInfo[playerid][pLocal];
    if(location == 99 || location == 100 || location == 102)
    {
    if(BizzInfo[location-99][bProducts] <= 0)
    {
    GameTextForPlayer(playerid, "~r~Out Of Stock", 5000, 1);
    return 1;
    }
    new mod = 100;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    format(string, sizeof(string), "USAGE: /buygun [gunname] [ammoamount]");
    SendClientMessage(playerid, COLOR_GREEN,"_______________________________________");
    SendClientMessage(playerid, COLOR_WHITE,"*** Guns & Ammo ***");
    SendClientMessage(playerid, COLOR_GRAD2,string);
    format(gunstring1, 256, "Weapons: parachute ($%d) golfclub ($%d) nightstick ($%d) baseballbat ($%d) shovel ($%d) poolcue ($%d)",
    GunPrice[0][0]/100*mod,GunPrice[1][0]/100*mod,GunPrice[2][0]/100*mod,GunPrice[3][0]/100*mod,GunPrice[4][0]/100*mod,GunPrice[5][0]/100*mod,GunPrice[6][0]/100*mod);
    SendClientMessage(playerid, COLOR_GRAD3, gunstring1);
    format(gunstring2, 256, "Weapons: purpledildo ($%d) whitedildo ($%d) longwhitedildo ($%d) whitedildo2 ($%d) flowers ($%d) cane",
    GunPrice[7][0]/100*mod,GunPrice[8][0]/100*mod,GunPrice[9][0]/100*mod,GunPrice[10][0]/100*mod,GunPrice[11][0]/100*mod,GunPrice[12][0]/100*mod);
    SendClientMessage(playerid, COLOR_GRAD3, gunstring2);
    format(gunstring3, 256, "Weapons: sdpistol ($%d) deagle ($%d) mp5 ($%d)",
    GunPrice[13][0]/100*mod,GunPrice[14][0]/100*mod,GunPrice[15][0]/100*mod,GunPrice[16][0]/100*mod,GunPrice[17][0]/100*mod,GunPrice[18][0]/100*mod);
    SendClientMessage(playerid, COLOR_GRAD3, gunstring3);
    format(gunstring4, 256, "Weapons: shotgun ($%d) ak47 ($%d) m4 ($%d) rifle ($%d)",
    GunPrice[19][0]/100*mod,GunPrice[20][0]/100*mod,GunPrice[21][0]/100*mod,GunPrice[22][0]/100*mod,GunPrice[23][0]/100*mod,GunPrice[24][0]/100*mod);
    SendClientMessage(playerid, COLOR_GRAD3, gunstring4);
    format(gunstring5, 256, "Weapons: pistolammo ($%d) shotgunammo ($%d) smgammo ($%d) assaultammo ($%d) rifleammo ($%d)",
    GunPrice[25][0],GunPrice[26][0],GunPrice[27][0],GunPrice[28][0],GunPrice[29][0]);
    SendClientMessage(playerid, COLOR_GRAD3, gunstring5);
    SendClientMessage(playerid, COLOR_GREEN,"_______________________________________");
    return 1;
    }
    strmid(gunid, tmp, 0, strlen(cmdtext), 255);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    format(string, sizeof(string), "USAGE: /buygun [gunname] [ammoamount]");
    return 1;
    }
    new ammo = strval(tmp);
    if(ammo < 1 || ammo > 999) { SendClientMessage(playerid, COLOR_GREY, " Ammo ammount not lower then 1 or higher then 999 !"); return 1; }
    if (strcmp(gunid, "parachute", true, strlen(gunid)) == 0)
    {
    gun = 46;
    guncharge = GunPrice[0][0]/100*mod;
    ammocharge = 0;
    }
    else if (strcmp(gunid, "golfclub", true, strlen(gunid)) == 0)
    {
    gun = 2; guncharge = GunPrice[1][0]/100*mod; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 2; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "nightstick", true, strlen(gunid)) == 0)
    {
    gun = 3; guncharge = GunPrice[2][0]/100*mod; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 3; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "baseballbat", true, strlen(gunid)) == 0)
    {
    gun = 5; guncharge = GunPrice[4][0]/100*mod; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 5; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "shovel", true, strlen(gunid)) == 0)
    {
    gun = 6; guncharge = GunPrice[5][0]/100*mod; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 6; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "poolcue", true, strlen(gunid)) == 0)
    {
    gun = 7; guncharge = GunPrice[6][0]/100*mod; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 7; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "purpledildo", true, strlen(gunid)) == 0)
    {
    gun = 10; guncharge = GunPrice[7][0]/100*mod; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 10; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "whitedildo", true, strlen(gunid)) == 0)
    {
    gun = 11; guncharge = GunPrice[8][0]/100*mod; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 11; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "longwhitedildo", true, strlen(gunid)) == 0)
    {
    gun = 12; guncharge = GunPrice[9][0]/100*mod; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 12; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "whitedildo2", true, strlen(gunid)) == 0)
    {
    gun = 13; guncharge = GunPrice[10][0]/100*mod; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 13; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "flowers", true, strlen(gunid)) == 0)
    {
    gun = 14; guncharge = GunPrice[11][0]/100*mod; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 14; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "cane", true, strlen(gunid)) == 0)
    {
    gun = 15; guncharge = GunPrice[12][0]/100*mod; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 15; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "sdpistol", true, strlen(gunid)) == 0)
    {
    gun = 23; guncharge = GunPrice[13][0]/100*mod; ammocharge = GunPrice[25][0]*ammo;
    PlayerInfo[playerid][pGun2] = 23; PlayerInfo[playerid][pAmmo2] = ammo;
    }
    else if (strcmp(gunid, "deagle", true, strlen(gunid)) == 0)
    {
    gun = 24; guncharge = GunPrice[15][0]/100*mod; ammocharge = GunPrice[25][0]*ammo;
    PlayerInfo[playerid][pGun2] = 24; PlayerInfo[playerid][pAmmo2] = ammo;
    }
    else if (strcmp(gunid, "mp5", true, strlen(gunid)) == 0)
    {
    gun = 29; guncharge = GunPrice[18][0]/100*mod; ammocharge = GunPrice[27][0]*ammo;
    PlayerInfo[playerid][pGun3] = 29; PlayerInfo[playerid][pAmmo3] = ammo;
    }
    else if (strcmp(gunid, "shotgun", true, strlen(gunid)) == 0)
    {
    gun = 25; guncharge = GunPrice[19][0]/100*mod; ammocharge = GunPrice[26][0]*ammo;
    PlayerInfo[playerid][pGun3] = 25; PlayerInfo[playerid][pAmmo3] = ammo;
    }
    else if (strcmp(gunid, "ak47", true, strlen(gunid)) == 0)
    {
    gun = 30; guncharge = GunPrice[22][0]/100*mod; ammocharge = GunPrice[28][0]*ammo;
    PlayerInfo[playerid][pGun4] = 30; PlayerInfo[playerid][pAmmo4] = ammo;
    }
    else if (strcmp(gunid, "m4", true, strlen(gunid)) == 0)
    {
    gun = 31; guncharge = GunPrice[23][0]/100*mod; ammocharge = GunPrice[28][0]*ammo;
    PlayerInfo[playerid][pGun4] = 31; PlayerInfo[playerid][pAmmo4] = ammo;
    }
    else if (strcmp(gunid, "rifle", true, strlen(gunid)) == 0)
    {
    gun = 33; guncharge = GunPrice[24][0]/100*mod; ammocharge = GunPrice[29][0]*ammo;
    PlayerInfo[playerid][pGun4] = 33; PlayerInfo[playerid][pAmmo4] = ammo;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD6, "ShopKeeper sagt: I have never heard of that weapon.");
    return 1;
    }
    if((guncharge+ammocharge) > GetPlayerMoney(playerid))
    {
    format(infostring, 256, " You don't have $%d !",guncharge+ammocharge);
    SendClientMessage(playerid, COLOR_GRAD3, infostring);
    return 1;
    }
    if(GetPlayerMoney(playerid) < (guncharge+ammocharge))
    {
    SendClientMessage(playerid, COLOR_GREY, " Can't afford that !");
    return 1;
    }
    new payout = guncharge + ammocharge;
    format(infostring, 256, "Du hast dir eine %s mit %d schuss für $%d gekauft.",gunid,ammo,payout);
    SendClientMessage(playerid, COLOR_GRAD3, infostring);
    if(location == 99 && IsACop(playerid) || location == 100 && IsAMK(playerid)) { }
    else { GivePlayerMoney(playerid, - payout); }
    BizzInfo[location-99][bTill] += payout;
    ExtortionBiz(location-99, payout);
    BizzInfo[location-99][bProducts]--;
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    GivePlayerWeapon(playerid, gun, ammo);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s bought weapons for $%d at biz %d", sendername, payout, location-99);
    printf("%s", string);
    PayLog(string);
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE,"Du bist in keinem Gunshop.");
    return 1;
    }
    }
    return 1;
    }

  • Also wenn ich es richtig verstehe, möchtest du das nur die Fraktion 12 in dem Gunshop reinkann und ich sehe, dass das gunshop für die Fraktion 12 location == 100 ist :)


    *edit


    Ich habe für dich die SuFu benutzt und du hast recht, dort steht nichts drinne wie es zu machen ist mhhhhhh...

    Einmal editiert, zuletzt von Pacino ()

  • Jop, dass hast du richtig gesehen, aber, es klappt immernoch nicht kann mir echt keiner helfen ?


    *edit


    Ich bin seit heute morgen seit ca. 10.00 Uhr an diesem Problem -.- ich weiß nich tgenau wie das funzen soll so steht das wenn man Cop ist


    for(new i = 0; i < sizeof(BizzInfo); i++)
    {
    if (PlayerToPoint(3, playerid,BizzInfo[i][bEntranceX], BizzInfo[i][bEntranceY], BizzInfo[i][bEntranceZ]))
    {
    //printf("Found House :%d",i);
    if(!IsACop(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Mitglied der Regierung !");
    return 1;
    }


    wenn ich dann aber das mache


    for(new i = 0; i < sizeof(BizzInfo); i++)
    {
    if (PlayerToPoint(3, playerid,BizzInfo[i][bEntranceX], BizzInfo[i][bEntranceY], BizzInfo[i][bEntranceZ]))
    {
    //printf("Found House :%d",i);
    if(!IsACop(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Mitglied der Regierung !");
    return 1;
    }
    if(!IsAMK(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Mitglied des Medellin-Kartells !");
    return 1;
    }



    Klappt es einigermaßen und zwar, ich connecte (bemerke, ich habe 2 bizze´s drin alle beide funzen) wenn ich dann eins kaufe mit der fraktion 12(IsAMK), klappt auch aber sobald ich /exit dann wieder /enter mache steht da du bist kein Mitglied der Regierung dann mache ich /makeleader p 1 und dann /enter, dann steht da, du bist kein Mitglied des Medellin-Kartells oO ? Bitte helft mir


    *edit


    Ich bitte echt um HILFE ! Bitte

    3 Mal editiert, zuletzt von Riddick ()

  • Es liegt nich an den /buygun befehl es liegt an /enter /exit,


    Du musst beim /enter befehl reinbauen wo du auch die Koor reingemacht hast von den Gunshop Icon,
    Bei der Koor wo man dann natürlich /enter macht musst du machen



    Da siehst du weiter unten sowas hier


    if (PlayerToPoint(3.0, playerid,1481.1625,-1771.0588,18.7958))
    {
    SetPlayerInterior(playerid,3);
    SetPlayerPos(playerid,384.808624,173.804992,1008.382812);
    GameTextForPlayer(playerid, "~w~Wilkommen in der Stadthalle!", 5000, 1);
    PlayerInfo[playerid][pInt] = 3;
    PlayerInfo[playerid][pLocal] = 241;
    }
    else if (PlayerToPoint(3.0, playerid,1073.0619,-344.5148,73.9922))
    {
    if(PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
    {
    SetPlayerInterior(playerid,2);
    SetPlayerPos(playerid,1205.0947,-10.1685,1000.9219);
    PlayerInfo[playerid][pInt] = 2;
    PlayerInfo[playerid][pLocal] = 242;
    }
    }


    das kann dann so aussehen...


    if (PlayerToPoint(3.0, playerid,1481.1625,-1771.0588,18.7958))
    {
    if(PlayerInfo[playerid][pMember] == 15 || PlayerInfo[playerid][pMember] == 15)
    {


    SetPlayerInterior(playerid,3);
    SetPlayerPos(playerid,384.808624,173.804992,1008.382812);
    GameTextForPlayer(playerid, "~w~Willkommen im *** Gunshop", 5000, 1);
    PlayerInfo[playerid][pInt] = 3;
    PlayerInfo[playerid][pLocal] = 241;
    }
    }
    else if (PlayerToPoint(3.0, playerid,1073.0619,-344.5148,73.9922))
    {
    if(PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
    {
    SetPlayerInterior(playerid,2);
    SetPlayerPos(playerid,1205.0947,-10.1685,1000.9219);
    PlayerInfo[playerid][pInt] = 2;
    PlayerInfo[playerid][pLocal] = 242;
    }
    }

  • shooter danke, aber es geht viel viel leichter, ich hab nur vergessen wie, ich habs immer so gemacht:


    for(new i = 0; i < sizeof(BizzInfo); i++)
    {
    if (PlayerToPoint(3, playerid,BizzInfo[i][bEntranceX], BizzInfo[i][bEntranceY], BizzInfo[i][bEntranceZ]))
    {
    //printf("Found House :%d",i);
    if(!IsACop(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Mitglied der Regierung !");
    return 1;
    }


    jetzt können nur noch Cops in den Gunshop, wenn ich aber dann z.B wie oben steht IsAMK hinzufüge passiert das was ich oben geschrieben habe :)

  • Also Der Gunshop kann gekauft werden? Also ne Biz..
    trozdem musst du im /enter Befehl das auch einbauen und wie ich gemacht habe is es besser da es dann unverscheinlcih is das du Errors bekommst.^^

  • So wie ich es imom mache kommen auch keine errors ncihtmal warnings, also ich schildere nochmal:


    Ich habe zum testen 2 Gunshops gemacht, alle beide funktionieren, dass weiß ich, weil ich es getestet habe so, wenn ich aber jetzt die gunshops definieren möchte, also das nur Cops ind Police Armoury und das, dass Medellin-Kartell und in ihr Gunshop reinkönnen, so jetzt habe ich das da oben mal gezeigt wie es im script steht if(!IsAcop.... so jetzt kommt man nicht mehr ins Cop bizz rein was ja auch richtig so ist, wenn ich aber jetzt als IsAMK in ihrem gunshop rein will mit /enter steht da du bist kein Mitglied der Regierung wenn ich dann /makeleader p 1 mache und /enter mache steht da, du bist kein mitglied des medellin kartells oO ?!


    *edit


    Bitte jkann mir jemand helfen, ist echt dringend :(

    7 Mal editiert, zuletzt von Riddick ()