Beiträge von Pseudynom

    Hallo Leute,


    new admincar[MAX_PLAYERS], Text3D:adminlabel[MAX_PLAYERS];


    [...]


    ocmd:spawncar(playerid,params[])
    {
    if(GetVehicleModel(admincar[playerid])!=0) {DestroyVehicle(admincar[playerid]); Delete3DTextLabel(adminlabel[playerid]);}


    [...]


    new [...];
    admincar[playerid]=CreateVehicle(ID,X,Y,Z,R,1,2,1800);
    adminlabel[playerid]=Create3DTextLabel("Irgendwas",COLOR_ROT,X,Y,Z,40.0,0,1);
    Attach3DTextLabelToVehicle(adminlabel[playerid],admincar[playerid],0.0,0.0,0.0);
    return 1;
    }


    Nun folgendes, wenn spieler a ein auto erstellt, ist an dem auto das textlabel, wenn nun aber spieler b auch eins erstellt, ist an spieler a Auto kein Label mehr aber an Spieler a Auto, die Autos bleiben aber und werden nicht entfernt.
    Das Problem ist das Label.


    /// EDIT /// Kann mir keiner helfen?

    Hallo:


    Möglichkeit 1:


    if(owned[playerid] != 1) return SendClientMessage(playerid, rot,"Du musst ein Haus besitzen!");


    Möglichkeit 2:


    if( !(owned[playerid] == 1 ) ) return SendClientMessage(playerid, rot,"Du musst ein Haus besitzen!");


    Musst selbst entscheiden, welches du besser findest. (Übersichtlichkeit, ...)

    Hatte schon die Exist-Abfragen durch Zahlen (a<3) ... ersetzt, gleiches Problem.


    Danke für die schnelle Hilfe


    PROBLEM GELÖST


    Fehler:
    Fahrzeugvariable war Array, hab vergessen den Array zu erhöhen, daher der Absturtz. <--- Ganz dummer Fehler :wacko:


    /me orfeigt sich.


    ||| Thema kann geschlossen werden. |||

    Hallo Leute,
    Die folgende dor-Schleife bricht immer die ganze GamemodeIni Funktion ab, was Kann ich tun?


    Code A:
    public OnGameModeInit()
    {
    [...]
    HausIni();
    AutohausIni();

    new debugmsg[32];
    format(debugmsg,sizeof(debugmsg),"GameModeIni fertig");
    print(debugmsg);

    return 1;
    }


    Code B:
    stock HausIni()
    {
    for(new a=1; mysql_ExistsIt("haussys","Hausnr",CompareSI("",a)));a++)
    {
    new Float:xout, Float:yout, Float:zout, Float:xin, Float:yin, Float:zin, rent[16], enterp[64], puid;
    xout=mysql_GetFloat("haussys", "Xout", "Hausnr", CompareSI("",a));
    yout=mysql_GetFloat("haussys", "Yout", "Hausnr", CompareSI("",a));
    zout=mysql_GetFloat("haussys", "Zout", "Hausnr", CompareSI("",a));
    xin=mysql_GetFloat("haussys", "Xin", "Hausnr", CompareSI("",a));
    yin=mysql_GetFloat("haussys", "Yin", "Hausnr", CompareSI("",a));
    zin=mysql_GetFloat("haussys", "Zin", "Hausnr", CompareSI("",a));
    new outmsg[128];
    format(outmsg,sizeof(outmsg),"%i[Haus] X: %f Y: %f Z: %f",z,xout,yout,zout);
    print(outmsg);


    if(mysql_GetInt("haussys", "Rent", "Hausnr", CompareSI("",a))==0) format(rent, sizeof(rent),"nicht mietbar");
    else format(rent, sizeof(rent),"%i",mysql_GetInt("haussys", "Rent", "Hausnr", CompareSI("",a)));
    format(enterp,sizeof(enterp),"%s\nBesitzer: %s\nPreis: %i\nMiete: %s",mysql_GetString("haussys","Name","Hausnr",CompareSI("",a)), mysql_GetString("haussys","Owner","Hausnr",CompareSI("",a)), mysql_GetInt("haussys","Price","Hausnr",CompareSI("",a)), rent);
    henterlabel[a-1]=Create3DTextLabel(enterp, COLOR_GELB, xout, yout, zout, 5.0,0,1);
    if(!strcmp(mysql_GetString("haussys", "Owner", "Hausnr", CompareSI("",a)),"sale",true)) puid=1273;
    else puid=1272;
    henter[a-1]=CreatePickup(puid,1,xout,yout,zout);
    hexit[a-1]=CreatePickup(puid,1,xin,yin,zin);
    }
    }


    Code C:
    stock AutohausIni()
    {
    for(new a=0; mysql_ExistsCar(0,a)!=0;a++)
    {
    new Float:iX=mysql_GetFloat("ahcfg","X","Hausnr",CompareSI("",a));
    new Float:iY=mysql_GetFloat("ahcfg","Y","Hausnr",CompareSI("",a));
    new Float:iZ=mysql_GetFloat("ahcfg","Z","Hausnr",CompareSI("",a));
    CreatePickup(1210,1,iX,iY,iZ,0);
    ahilabel[a]=Create3DTextLabel(mysql_GetString("ahcfg", "Name", "Hausnr", CompareSI("",a)),COLOR_GELB,iX,iY,iZ,20.0,0,0);
    for(new b=0;mysql_ExistsCar(b,a)!=0;b++)
    {
    new myis[8];
    format(myis,sizeof(myis),"%i_%i",a,b);
    new vid=mysql_GetInt("autohaus", "ID", "car_id", myis);
    new Float:vX=mysql_GetFloat("autohaus", "X", "car_id", myis);
    new Float:vY=mysql_GetFloat("autohaus", "Y", "car_id", myis);
    new Float:vZ=mysql_GetFloat("autohaus", "Z", "car_id", myis);
    new Float:vR=mysql_GetFloat("autohaus", "R", "car_id", myis);
    new acolor=mysql_GetInt("autohaus", "colora", "car_id", myis);
    new bcolor=mysql_GetInt("autohaus", "colorb", "car_id", myis);
    new respawnd=mysql_GetInt("autohaus", "respawn", "car_id", myis);
    shopcars[a][b][C_Preis]=mysql_GetInt("autohaus", "Price", "car_id", myis);


    new texte[32];
    format(texte,sizeof(texte),"%s",mysql_GetString("autohaus", "Name", "car_id", myis));
    shopcars[a][b][C_Name]=texte;


    shopcars[a][b][C_Auto]=CreateVehicle(vid,vX,vY,vZ,vR,acolor,bcolor,respawnd);
    SetVehicleParamsEx(shopcars[a][b][C_Auto],0,0,0,0,0,0,0);


    new labelstr[64];
    format(labelstr,sizeof(labelstr),"Vehicle: %s\nPreis: %i\n/autokaufen",shopcars[a][b][C_Name],shopcars[a][b][C_Preis]);
    carlabel[a][b]=Create3DTextLabel(labelstr,COLOR_GELB,vX,vY,vZ,7.5,0,0);
    }
    }
    }


    Bei Code A wird debugmsg nicht erreicht.


    Danke im Voraus.

    public OnGameModeInit()
    {
    new privatepick;
    privatepick=CreatePickup(model,type,X,Y,Z,virtworld);
    return 1;
    }
    ...
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid==privatepickup)
    {
    GivePlayerWeapon(playerid,46,1);
    }
    return 1;
    }


    Es ist wichtig, dass du den richtigen Pickuptype wählst.
    Wenn du als Pickupmodel 371 nimmst, kannst du dir den 2. Teil sparen.

    Wichtig, damit das Licht auch bei Tag funktioniert:
    public OnGameModeInit()
    {
    ManualVehicleEngineAndLights();
    }


    Hiermit kannst du bestimmen, dass erst beim loslassen der Taste die Aktion ausgeführt wird:
    (oldkeys & KEY_SUBMISSION) && !(newkeys & KEY_SUBMISSION)
    Und so beim Drücken:
    !(oldkeys & KEY_SUBMISSION) && (newkeys & KEY_SUBMISSION)


    EDIT// Du kannst nur Tasten verwenden, die von GTA SA benutzt werden. Besipiel: KEY_FIRE ist standardmäßig L-Strg, wenn jemand allerdings die Tastenbelegung ändert, Bsp.: KEY_FIRE auf [O] setzt, muss er diese Taste benutzen.


    Hoffe ich konnte helfen.


    MfG