[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Wieso benennt man bitte einen String 'Query' ?


    Sinn dahinter?


    Du kannst den auch Spongebob nennen oder auch Kai_Uwe
    Das ist ja egal


    Eine SendClientMessage schafft nur 128 Zeichen wenn man für jede Zeile eine neue format deklaration nutzt, dann ist der headspace auch schnell voll daher nutz eine in einer Funktion das reicht vollkommen aus ;)

    All in all it's just another brick in the wall

  • Moin Moin :)
    Ich habe gerade ein Bug im Ammunation gefunden also wenn man /buygun macht komen die Nachichten und so.
    Wenn ich aber eine Waffe oder so kaufe und munnition eingebe krige ich die sachen nicht aber ich verliere mein geld :x
    und wenn ich das gekauft habe kommt immer Server : Unknowen Command !


    Kann mir einer das Bitte machen , ich bin nicht der Scripter / habe nicht die nötige erfahrung um sowas zu machen :D !



    if (strcmp(cmd, "/buygun", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,290.2523,-106.7863,1001.5156)||
    IsPlayerInRangeOfPoint(playerid,3.0,295.4237,-38.1667,1001.5156))
    //IsPlayerInRangeOfPoint(playerid,10.0,295.1371,-80.8117,1001.5156))
    {
    if(PlayerInfo[playerid][pLevel] <= 4)
    {
    SendClientMessage(playerid, COLOR_RED, "Du musst mindestens Level 5 sein um hier einzukaufen");
    return 1;
    }
    if(GetPlayerMoney(playerid) < 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du hast nicht genug Geld !");
    return 1;
    }
    if(PlayerInfo[playerid][pGunLic] == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du hast kein Waffenschein !");
    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 local = PlayerInfo[playerid][pLocal];
    if(GetPlayerInterior(playerid) == 1||GetPlayerInterior(playerid) == 6)
    //PlayerInfo[playerid][pLocal] == 101 || PlayerInfo[playerid][pLocal] == 102 || PlayerInfo[playerid][pLocal] == 103)
    {
    /* if(BizzInfo[location-99][bProducts] <= 0)
    {
    GameTextForPlayer(playerid, "~r~Ausverkauft", 5000, 1);
    return 1;
    }*/
    new modsss = 200;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    format(string, sizeof(string), "Benutzung: /buygun [waffenname] [munition]");
    SendClientMessage(playerid, COLOR_GREEN,"_______________________________________");
    SendClientMessage(playerid, COLOR_WHITE,"*** Waffen & Munition ***");
    SendClientMessage(playerid, COLOR_GRAD2,string);
    format(gunstring1, 256, "Waffen: Fallschirm ($%d) Golfschläger ($%d) Schlagstock ($%d) Baseballschläger ($%d) Schaufel ($%d) PoolCue ($%d)",
    GunPrice[0][0]/100*modsss,GunPrice[1][0]/100*modsss,GunPrice[2][0]/100*modsss,GunPrice[3][0]/100*modsss,GunPrice[4][0]/100*modsss,GunPrice[5][0]/100*modsss,GunPrice[6][0]/100*modsss);
    SendClientMessage(playerid, COLOR_GRAD3, gunstring1);
    format(gunstring2, 256, "Waffen: VioletterDildo ($%d) WeißerDildo ($%d) LangerweißerDildo ($%d) WeißerDildo2 ($%d) Blumen ($%d) cane",
    GunPrice[7][0]/100*modsss,GunPrice[8][0]/100*modsss,GunPrice[9][0]/100*modsss,GunPrice[10][0]/100*modsss,GunPrice[11][0]/100*modsss,GunPrice[12][0]/100*modsss);
    SendClientMessage(playerid, COLOR_GRAD3, gunstring2);
    format(gunstring3, 256, "Waffen: SD-Pistole ($%d) DesertEagle ($%d) MP5 ($%d)",
    GunPrice[13][0]/100*modsss,GunPrice[14][0]/100*modsss,GunPrice[15][0]/100*modsss,GunPrice[16][0]/100*modsss,GunPrice[17][0]/100*modsss,GunPrice[18][0]/100*modsss);
    SendClientMessage(playerid, COLOR_GRAD3, gunstring3);
    format(gunstring4, 256, "Waffen: Shotgun ($%d) AK47 ($%d) M4 ($%d) Sniper ($%d)",
    GunPrice[19][0]/100*modsss,GunPrice[20][0]/100*modsss,GunPrice[21][0]/100*modsss,GunPrice[22][0]/100*modsss,GunPrice[23][0]/100*modsss,GunPrice[24][0]/100*modsss);
    SendClientMessage(playerid, COLOR_GRAD3, gunstring4);
    format(gunstring5, 256, "Waffen: Pistolen Munition ($%d) Shotgun Munition ($%d) MP5 Munition ($%d) AK47/M4 Munition ($%d) Sniper Munition ($%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), "BENUTZUNG: /buygun [Waffe] [Munition]");
    return 1;
    }
    new ammo = strval(tmp);
    if(ammo < 1 || ammo > 999) { SendClientMessage(playerid, COLOR_GREY, " Die Munition muss zwischen 1 und 999 sein !"); return 1; }
    if (strcmp(gunid, "Fallschirm", true, strlen(gunid)) == 0)
    {
    gun = 46;
    guncharge = GunPrice[0][0]/100*modsss;
    ammocharge = 0;
    }
    else if (strcmp(gunid, "Golfschläger", true, strlen(gunid)) == 0)
    {
    gun = 2; guncharge = GunPrice[1][0]/100*modsss; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 2; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "Schlagstock", true, strlen(gunid)) == 0)
    {
    gun = 3; guncharge = GunPrice[2][0]/100*modsss; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 3; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "Baseballschläger", true, strlen(gunid)) == 0)
    {
    gun = 5; guncharge = GunPrice[4][0]/100*modsss; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 5; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "Schaufel", true, strlen(gunid)) == 0)
    {
    gun = 6; guncharge = GunPrice[5][0]/100*modsss; 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*modsss; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 7; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "VioletterDildo", true, strlen(gunid)) == 0)
    {
    gun = 10; guncharge = GunPrice[7][0]/100*modsss; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 10; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "Weißerdildo", true, strlen(gunid)) == 0)
    {
    gun = 11; guncharge = GunPrice[8][0]/100*modsss; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 11; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "langerweißerdildo", true, strlen(gunid)) == 0)
    {
    gun = 12; guncharge = GunPrice[9][0]/100*modsss; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 12; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "weißerdildo2", true, strlen(gunid)) == 0)
    {
    gun = 13; guncharge = GunPrice[10][0]/100*modsss; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 13; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "Blumen", true, strlen(gunid)) == 0)
    {
    gun = 14; guncharge = GunPrice[11][0]/100*modsss; 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*modsss; ammocharge = 0;
    PlayerInfo[playerid][pGun1] = 15; PlayerInfo[playerid][pAmmo1] = 1;
    }
    else if (strcmp(gunid, "SD-Pistole", true, strlen(gunid)) == 0)
    {
    gun = 23; guncharge = GunPrice[13][0]/100*modsss; ammocharge = GunPrice[25][0]*ammo;
    PlayerInfo[playerid][pGun2] = 23; PlayerInfo[playerid][pAmmo2] = ammo;
    }
    else if (strcmp(gunid, "DesertEagle", true, strlen(gunid)) == 0)
    {
    gun = 24; guncharge = GunPrice[15][0]/100*modsss; 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*modsss; 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*modsss; 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*modsss; 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*modsss; ammocharge = GunPrice[28][0]*ammo;
    PlayerInfo[playerid][pGun4] = 31; PlayerInfo[playerid][pAmmo4] = ammo;
    }
    else if (strcmp(gunid, "Sniper", true, strlen(gunid)) == 0)
    {
    gun = 34; guncharge = GunPrice[24][0]/100*modsss; ammocharge = GunPrice[29][0]*ammo;
    PlayerInfo[playerid][pGun4] = 34; PlayerInfo[playerid][pAmmo4] = ammo;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD6, "Ladenbesitzer: Ich habe noch nie von dieser Waffe gehört.");
    return 1;
    }
    if((guncharge+ammocharge) > GetPlayerMoney(playerid))
    {
    format(infostring, 256, " Du hast keine $%d !",guncharge+ammocharge);
    SendClientMessage(playerid, COLOR_GRAD3, infostring);
    return 1;
    }
    if(GetPlayerMoney(playerid) < (guncharge+ammocharge))
    {
    SendClientMessage(playerid, COLOR_GREY, "Geht nicht !");
    return 1;
    }
    new payout = guncharge + ammocharge;
    format(infostring, 256, "Du hast eine %s mit %d Munition für $%d erworben",gunid,ammo,payout);
    SendClientMessage(playerid, COLOR_GRAD3, infostring);
    GivePlayerMoney(playerid, -payout);
    BizzInfo[local-99][bTill] += payout/3;
    ExtortionBiz(local-99, payout);
    BizzInfo[local-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 hat Waffen für $%d eingekauft im BIZ: %d", sendername, payout, local-99);
    printf("%s", string);
    PayLog(string);
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE,"Du bist in keinem Laden.");
    return 1;
    }
    }
    }
    return 1;
    }

  • Wie soll ich das machen ? ich bin nicht so der Scripter :D !

    So:

    if(mats < 1) return SendClientMessage(playerid,DeineFarbe,"Mats dürfen nicht kleiner als 1 sein!");

    So:

    if(mats < 1) return SendClientMessage(playerid,DeineFarbe,"Mats dürfen nicht kleiner als 1 sein!");

    So:

    if(mats < 1) return SendClientMessage(playerid,DeineFarbe,"Mats dürfen nicht kleiner als 1 sein!");



    Lol den bug kenn ich nicht 8|

  • LoL den Bug kenn ich nicht 8|

  • Wer kann hier ein Fehler erkennen?


    if(newkeys & 8192 && Kaufen)//Links
    {
    if(IsPlayerNPC(playerid))return 1;
    new Float:zz[4];
    GetPlayerPos(playerid,zz[0],zz[1],zz[2]);
    GetPlayerFacingAngle(playerid,zz[3]);
    new Nummbberrr = sizeof(Autosss);
    if(AutoActive == 0)
    {
    AutoActive = Nummbberrr;
    }
    else
    {
    AutoActive --;
    }
    new carrr = Autosss[AutoActive][0];
    DestroyVehicle(AutoVehicle);
    AutoVehicle = CreateVehicle(carrr,zz[0]+2,zz[1]+2,zz[2],zz[3],random(100),random(100),true,3600,-1,0,"Keiner",0.001);
    return 1;
    }
    der jagt mir dauernt ein Runtime Error 4 raus.
    Irgendwie kann das nicht sein der hängt an der AutoActive fest, entwerder ist es zu wenig oder zuviel
    Wie kommt das zustande??

    All in all it's just another brick in the wall

  • Am getplayerpos liegt es nicht
    der haut mir den Wert zu hoch
    komischerweise kommt er auf -1 und über das Maximum
    aber ich versteh nicht wiso, da er es eigendlich nicht dürfte


    new Float:zz[4]; //Das zu Testzwecken mal auf 5 setzen.


    da es in einem 3er Array meistens auch nur 0,1,2 Zählt. :D


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Beavis:
    new Nummbberrr = sizeof(Autosss);
    if(AutoActive == 0)
    {
    AutoActive = Nummbberrr;
    }
    else
    {
    AutoActive --;
    }
    new carrr = Autosss[AutoActive][0];
    wenn die if Abfrage stimmt, dann setzt er AutoActive auf die größe/sizeof von Autosss
    Autosss[][2]=
    {
    {560, 2500},
    {561, 3000},
    {555, 1000}
    };
    in dem Fall 3!!!!!!!
    Aber 3 ist ein Out of Bounds error, da es nur 0,1,2 gibt(in dem Beispiel)! 3 ist schon zu viel ;)


    ->

    new Nummbberrr = sizeof(Autosss);
    if(AutoActive == 0)
    {
    AutoActive = (Nummbberrr-1);
    }
    else
    {
    if(AutoActive > 0) AutoActive --;
    }
    new carrr = Autosss[AutoActive][0];

  • Hallöschen,
    ich bin derzeit am überlegen für jedes Fahrzeug die Tuningteile, Farbe etc in einer Datei zu Speichern.
    Ich wollte den Namen der Datei die VehicleID zuweisen.


    Würde das ganze den funktionieren oder wird die VehicleID nach einem Restart resetet?
    bzw. werden die Dateien dann noch zu den richtigen Fahrzeugen gehören?

  • Weis das wirklich keiner ? :(
    Bitte ich brauche hilfe ;)

  • Würde das ganze den funktionieren oder wird die VehicleID nach einem Restart resetet?
    bzw. werden die Dateien dann noch zu den richtigen Fahrzeugen gehören?


    per Vehicleid ist es schlecht zu machen, denn die können sich immer verändern...


    Speicher das Tuning direkt in der Auto datei, denn viel aufwand ist das nicht
    Ich hab das so gemacht:
    for(new slot; slot<14; slot++)
    {
    VehicleData[i][Tuning][slot] = GetVehicleComponentInSlot(i,slot);//i ist das Auto selber
    format(query,20,",`Slot%d`='%d'",slot,VehicleData[i][Tuning][slot]);
    strcat(Data,query);
    }
    das selbe auch beim Laden
    schnell einfach und es gibt keine Probleme

    All in all it's just another brick in the wall

  • Zitat

    Speicher das Tuning direkt in der Auto datei, denn viel aufwand ist das nicht

    Seid wann gibt es eine "Auto Datei"? :D
    Wenn der Server Restartet wird muss ich es ja in einer Datei Speichern (ich denke das meinst du mit Auto Datei)
    aber wie sorge ich dafür das er nach dem Restart die richtige Datei dem richtigen Auto zuweisen kann?


    VehicleData[i][Tuning][slot] = GetVehicleComponentInSlot(i,slot);//i ist das Auto selber
    so Speichert er es doch nur bis zum Server Restart, oder nicht?

  • so Speichert er es doch nur bis zum Server Restart, oder nicht?


    Ich schreibe es direkt in die Datenbank, da bei mir im Script keine Autos zu finden sind


    Ich dachte jetzt, das du sowas für dein Autosystem brauchst^^


    Aber per vehicleid... kann man schlecht vorraussagen ob das richtige wieder kommt das die selbe id hat


    //nachtrag


    Wiso kann ich das Textdraw nicht anklicken?
    Zhaaahh[2] = TextDrawCreate(236.000000, 143.000000, "Informationen");
    TextDrawBackgroundColor(Zhaaahh[2], 255);
    TextDrawFont(Zhaaahh[2], 0);
    TextDrawLetterSize(Zhaaahh[2], 0.659999, 1.900000);
    TextDrawColor(Zhaaahh[2], -1);
    TextDrawSetOutline(Zhaaahh[2], 0);
    TextDrawSetProportional(Zhaaahh[2], 1);
    TextDrawSetShadow(Zhaaahh[2], 1);
    TextDrawTextSize(Zhaaahh[2], 236, 143.0);
    TextDrawSetSelectable(Zhaaahh[2], true);

    All in all it's just another brick in the wall

    Einmal editiert, zuletzt von Beavis ()