Beiträge von Anubis

    Die 500 am ende musst du natürlich wieder rausnehmen da das Tor ja jetzt nicht mehr über den Streamer läuft, ich nehme mal an das war die DrawDistance vom Streamer.

    Dann mach aus "CreateStreamObject" einfach "CreateObject" und lässt es ohne Streamer laufen.


    Meiner Erfahrung nach ist es eh besser Tore ohne Streamer laufen zu lassen aber da gehen die meinungen sicher auseinander.




    Hast du denn oben im script auch


    forward BH_1();



    ?

    Komplett neues System gekauft :rolleyes:

    • Monitor 22 Zoll TFT Widescreen 5 ms
    • Gehäuse 922 HAF Midi Tower Coolermaster
    • Netzteil 700 Watt System Power bequiet!
    • Mainboard GA-790XTA-UD4 4xDDR3 RAM Gigabyte
    • CPU Phenom II X6 1055T 6 x 2,8 GHz AM3 125 Watt AMD
    • Kühler Mugen 2 140 Watt Scythe
    • RAM 4096 MB Kit AMD DDR3 1600
    • Grafikkarte GeForce GTS250 1024 MB PCI-Express
    • Festplatte Samsung 500 GB SATA II 32 MB Cache + Externe 500GB
    • Laufwerk DVD-Brenner DL SATA 20x
    • Sound OnBoard Soundkarte Realtek 7.1
    • Netzwerk OnBoard Netzwerkkarte Gigabit 10/100/1000


    Ein einfacher und simpler schutz wäre auch das nach dem starten des Servers die registration/login deaktiviert sind bis jemand kommt und einen geheimen Befehl eingibt womit die registration+login wieder freigegeben werden....wäre auch ne tolle sache. So wäre die amx für einen Dieb von vorn herein nutzlos :thumbup:

    if(strcmp(cmdtext,"/farmer",true,7) == 0)
    {
    new sendfc[128], sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(sendfc,sizeof sendfc,"Farmer:%s: %s",sendername,cmdtext[8]);
    {
    if(Team[playerid] == TEAM_FARMER)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Team == TEAM_FARMER)
    {
    SendClientMessage(i,COLOR_GREEN, sendfc);
    }}}}}
    return 1;
    }


    EDIT: Fehler korrigiert, vergessen ein paar Klammer zu schliessen :whistling:

    Ok danke, werde ich mal versuchen.



    Habe nochmal mit meinen Testern gesprochen und ist doch etwas anders als wie ich es oben geschildert habe. Sie sagen das es wohl so wäre das der Timer immer zusätzlich für ID 0 ausgeführt wird wenn jemand connectet.
    Kommt also ein neuer Spieler auf den Server, hat ID 0 ein problem.........


    Kann mir jemand erklären woran das liegt ? Hab ich iwo was grundlegendes falsch gemacht ? Ich meine,viel code ist es ja nicht..........

    Hallo zusammen,


    Beim connecten des Spielers habe ich einen kleinen timer eingebaut der für meine zwecke notwenig ist, allerdings wird jedesmal wenn ein Spieler connectet der Timer für alle Spieler aktiviert bzw immer wenn ein Spieler mit der id 0 connected. Wäre nett wenn mir da jemand weiterhelfen könnte :)



    forward skipscreen(playerid);


    public OnPlayerConnect(playerid)
    {
    SetTimer("skipscreen",1000,0);
    return 1;
    }



    public skipscreen(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    SetPlayerPos(playerid, 4088.0247,-2363.1208,420.7324);
    SetPlayerCameraPos(playerid, 2188.0247,-4169.1608,1240.7324);
    SetPlayerCameraLookAt(playerid, 12461.4468,-12472.5127,4219.9652);
    }
    return 1;
    }



    Mit freundlichen Grüßen


    Anubis

    Es gibt zwar eine möglichkeit die Geschwindigkeit ohne GetVehicleVelocity zu messen aber das wäre dank dieser schönen Funktion ziemlich unnötig.


    Um die Geschwindikeitsanzeige zu beeinflussen musst du lediglich die "1.610921812123" verändern.
    kmh = floatround(floatsqroot(floatabs(floatpower(vex + vey + vez, 2))) * 100 * 1.610921812123);// <<<<<<<<<<<<<<<<<<<<<




    Bei mir siehts zb so aus - dort wird allerdings erst die wurzel gezogen und dann rund gemacht - kommt aber am ende das gleiche raus und ist auch hier nicht wichtig.Wichtig ist nur der Multiplikator am ende.....bei mir 3,40 - was einer höchstgeschwindigkeit von 310/kmh beim Turismo entspricht.


    rtn = floatsqroot(floatabs(floatpower(rtx + rty + rtz,2)));
    kmh = floatround(rtn * 100 * 3.40);

    Ich kann dir da "learning by doing" empfehlen. Ergo, such dir irgendeinen GM, zb Godfather (so hab ichs auch gemacht, ist aber sehr komplex), mach dich mit den Strukturen vertraut, bastel ein bischen dran rum und irgendwann hast du den dreh raus und kannst anfangen deinen eigenen GM zu machen.


    Oder du fängst direkt mit Phase 2 an.......nimm eine blank pwn und fang sofort mit deinem eigenen GM an, alles was du dafür brauchst ist hier im Forum und samp-wiki zu finden. Setz dir ein paar kleine Ziele und setze sie mithilfe der genannten Quellen um, bei problemen stellst deine Fragen einfach hier im Forum.Irgendwann klappt das alles wie von allein :)

    Wenn du selbst ein funktionierendes System hast dann änder die Formel doch einfach ? Bischen rumprobieren bis du die gewünschte höchstgeschwindigkeit hast und problem gelöst...oder eben die allseits bekannte SuFu benutzen - gibt einige Threads in denen die ideale "formel" zu finden ist.

    Nabend zusammen,



    Habe seit langem mal wieder angefangen zu scripten und stehe vor einem kleinen problem. Ich möchte das ein Fahrzeug welches zerstört wird mit nur 250hp respawnt, also knapp gesagt - 1hp bevor es wieder explodieren würde. Habe es bereits mit "OnVehicleDeath" probiert aber problem dabei ist das "OnVehicleDeath" bereits ausgeführt wird bevor das Fahrzeug respawnt und somit spawnt es trotzdem mit vollen Punkten. Mit einem Timer hab ich es auch versucht aber das funktioniert auch nicht so ganz, gehe aber davon aus das ich bei dem Timer was falsch mache.



    Wäre sehr dankbar wenn mir jemand so einen Timer basteln könnte - der public teil reicht eigentlich.Sind ja nur ein paar Zeilen und für einen Profi sicher ein leichtes :)





    Mit freundlichen Grüßen


    Anubis





    EDIT:


    Problem selbst gelöst.......



    -CLOSED-




    Thx an alle, habe es hinbekommen.


    new namefound = 0;
    if(!strcmp(strget(cmdtext, 0), "/hausname"))
    {
    if(strlen(cmdtext[10]))
    {
    for(new c = 0;c<sizeof(hinfo);c++)
    {
    if(strcmp(hinfo[code=c][hausname],cmdtext[10],false) == 0)
    {
    namefound = 1;
    }}
    if(namefound == 1)return SendClientMessage(playerid,COLOR_ROT, "Dieser Hausname ist bereits vergeben.");
    {
    for(new i = 0;i<sizeof(hinfo);i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,1.0,hinfo[i][e_haus_x],hinfo[i][e_haus_y],hinfo[i][e_haus_z]))
    {
    if(strcmp(hinfo[i][besitzer],playername[playerid],false) == 0)
    {
    strmid(hinfo[i][hausname],cmdtext[10],0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    format(updhini,sizeof updhini,"häuser/haus_%d.ini",i);
    format(chstr,sizeof chstr,"%s\nBesitzer : %s\nPreis : %d$",hinfo[i][hausname],hinfo[i][besitzer],hinfo[i][kosten]);
    Update3DTextLabelText(hinfo[i][hlabel],0x009900AA,chstr);
    dini_Set(updhini,"hausname",hinfo[i][hausname]);
    SendClientMessage(playerid,COLOR_HELLGRUEN,"Hausname geändert.");
    }
    else
    {
    SendClientMessage(playerid,COLOR_ROT,"Dieses Haus gehört nicht dir.");
    }}}}
    return 1;
    }
    return 1;
    }



    -CLOSED-

    Okay, das hilft mir schonmal weiter.Ist ja doch nicht so kompliziert wie ich dachte.


    Meine probleme mit schleifen basierten in der vegangenheit meistens darauf das ich sie an der falschen stelle zugemacht habe und dann endlos rumprobiert habe bis es funktionierte. Mittlerweile hab ichs begriffen aber bei 2 schleifen war ich mir doch etwas unsischer.


    Werds jetzt mal versuchen :)

    Das problem ist das ich noch nie eine schleife in einer schleife erstellt habe und bevor ich wieder stundenlang learning by doing like rumfummel bis ichs endlich hinbekomme und weiß wie es funktioniert...frage ich diesmal lieber vorher ^^

    Guten Abend zusammen,


    Und zwar kann man bei meinem haussystem den Häusern noch zusätzlich einen namen geben,allerdings ist bereits eine schleife vorhanden die das betreffende Haus sucht und aus dem grund weiß ich nun nicht so recht wo/wie ich jetzt eine weitere schleife einbauen soll um zu überprüfen ob der Hausname bereits vergeben ist.


    Wäre sehr erfreut wenn mir da jemand weiterhelfen könnte :)


    if(!strcmp(strget(cmdtext, 0), "/hausname"))
    {
    if(strlen(cmdtext[10]))
    {
    for(new i = 0;i<sizeof(hinfo);i++)
    {
    f(IsPlayerInRangeOfPoint(playerid,1.0,hinfo[i][e_haus_x],hinfo[i][e_haus_y],hinfo[i][e_haus_z]))
    {
    if(strcmp(hinfo[i][besitzer],playername[playerid],0) == 0)
    {
    strmid(hinfo[i][hausname],cmdtext[10],0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    format(updhini,sizeof updhini,"häuser/haus_%d.ini",i);
    format(chstr,sizeof chstr,"%s\nBesitzer : %s\nPreis : %d$",hinfo[i][hausname],hinfo[i][besitzer],hinfo[i][kosten]);
    Update3DTextLabelText(hinfo[i][hlabel],0x009900AA,chstr);
    dini_Set(updhini,"hausname",hinfo[i][hausname]);
    }
    else
    {
    SendClientMessage(playerid,COLOR_ROT,"Dieses Haus gehört nicht dir.");
    }
    return 1;
    }}
    return 1;
    }}


    Mit freundlichen Grüßen


    Anubis