[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
  • Du kannst das mit einem Array und einer Schleife lösen.
    Sprich, du erstellst ein Array mit der Größe deiner Objekte die du texturieren möchtest und durchläufst dann mit der Schleife das Array. Dann kannst du in der Schleife SetObjectMaterial nutzen.


    Falls du Fragen oder Probleme hast, dann melde dich gerne noch mal. Dann am besten mit Code.

  • Du kannst das mit einem Array und einer Schleife lösen.
    Sprich, du erstellst ein Array mit der Größe deiner Objekte die du texturieren möchtest und durchläufst dann mit der Schleife das Array. Dann kannst du in der Schleife SetObjectMaterial nutzen.


    Falls du Fragen oder Probleme hast, dann melde dich gerne noch mal. Dann am besten mit Code.

    Danke für die Information werde es später einmal probieren.


    Du meinst in den Array die Objekte speichern
    Und dann mit einer For-Schleife i immer um 1 erhöhen und dann als Object für Texturierung

    Code
    TestArray[i]


    nutzen?




    Mit freundlichen Grüßen
    Pytroxis
    ~Handy

  • Genau. ;)


    Falls du dir sonst nicht sicher bist, kannst du mal den gesamten Code schicken, dann sagen wir dir ob es richtig oder falsch ist. ;)

  • Guten Abend,


    ich bräuchte kurz nen kleinen Denkanstupser ;)
    Versuche per ocmd 2 Befehle einzubinden, sprich das test1 und test2 in einem Befehl sind.
    Bin mir nicht mehr genau sicher wie dies ging...


    Ich habe es so versucht:

    Code
    ocmd@2:test1,test2(playerid, params[])
    {
        return 1;
    }

    Hierbei erhalte ich 2 Errors:
    invalid function or declaration


    Kann mir einer weiterhelfen?
    Vielen Dank ^^

  • Habe das Problem, dass meine ATMs einfach keinen 3DTextLabel haben wollen. Das passiert aber nur beim Serverstart (also haben sie quasi trotzdem keinen), weil sobald ich einen ATM create (Befehl) ist das Label da.



    // UpdateATM
    updateATM(id)
    {
    Delete3DTextLabel(atmInfo[id][a_text]);
    new string[128];
    format(string,sizeof(string),"ATM\nATM verbleidendes Geld: %i$\nATM momentaner Inhalt: %i$",atmInfo[id][a_inventory],atmInfo[id][a_savedmoney]);
    atmInfo[id][a_text]=Create3DTextLabel(string,CLR_YELLOW,atmInfo[id][ax],atmInfo[id][ay],atmInfo[id][az],20.0,0,1);
    return 1;
    }


    // ATMs Laden
    sqlLoadATMs()
    {
    new query[256],num_fields,num_rows,count;
    mysql_format(dbhandle,query,sizeof(query),"SELECT * FROM atms");
    mysql_query(dbhandle,query);
    cache_get_data(num_rows,num_fields,dbhandle);
    if(!num_rows)return 1;
    for(new i=0;i<num_rows;i++)
    {
    count++;
    atmInfo[i][a_dbid]=cache_get_field_content_int(i,"id");
    atmInfo[i][ax]=cache_get_field_content_float(i,"x");
    atmInfo[i][ay]=cache_get_field_content_float(i,"y");
    atmInfo[i][az]=cache_get_field_content_float(i,"z");
    atmInfo[i][arx]=cache_get_field_content_float(i,"rx");
    atmInfo[i][ary]=cache_get_field_content_float(i,"ry");
    atmInfo[i][arz]=cache_get_field_content_float(i,"rz");
    atmInfo[i][a_inventory]=cache_get_field_content_int(i,"inventory");
    atmInfo[i][a_savedmoney]=cache_get_field_content_int(i,"savedmoney");
    atmInfo[i][a_id]=CreateDynamicObject(2942,atmInfo[i][ax],atmInfo[i][ay],atmInfo[i][az],atmInfo[i][arx],atmInfo[i][ary],atmInfo[i][arz]);
    updateATM(i);
    }
    printf("Es wurde(n) %i ATM(s) geladen.",count);
    return 1;
    }


    Habe mir mal die Coords printen lassen, sind absolut korrekt. Habe auch nochmal Syntax angeschaut, scheint aber richtig zu sein.

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Habe das Problem, dass meine ATMs einfach keinen 3DTextLabel haben wollen. Das passiert aber nur beim Serverstart (also haben sie quasi trotzdem keinen), weil sobald ich einen ATM create (Befehl) ist das Label da.


    // UpdateATMupdateATM(id){ Delete3DTextLabel(atmInfo[id][a_text]); new string[128]; format(string,sizeof(string),"ATM\nATM verbleidendes Geld: %i$\nATM momentaner Inhalt: %i$",atmInfo[id][a_inventory],atmInfo[id][a_savedmoney]); atmInfo[id][a_text]=Create3DTextLabel(string,CLR_YELLOW,atmInfo[id][ax],atmInfo[id][ay],atmInfo[id][az],20.0,0,1); return 1;}// ATMs LadensqlLoadATMs(){ new query[256],num_fields,num_rows,count; mysql_format(dbhandle,query,sizeof(query),"SELECT * FROM atms"); mysql_query(dbhandle,query); cache_get_data(num_rows,num_fields,dbhandle); if(!num_rows)return 1; for(new i=0;i<num_rows;i++) { count++; atmInfo[i][a_dbid]=cache_get_field_content_int(i,"id"); atmInfo[i][ax]=cache_get_field_content_float(i,"x"); atmInfo[i][ay]=cache_get_field_content_float(i,"y"); atmInfo[i][az]=cache_get_field_content_float(i,"z"); atmInfo[i][arx]=cache_get_field_content_float(i,"rx"); atmInfo[i][ary]=cache_get_field_content_float(i,"ry"); atmInfo[i][arz]=cache_get_field_content_float(i,"rz"); atmInfo[i][a_inventory]=cache_get_field_content_int(i,"inventory"); atmInfo[i][a_savedmoney]=cache_get_field_content_int(i,"savedmoney"); atmInfo[i][a_id]=CreateDynamicObject(2942,atmInfo[i][ax],atmInfo[i][ay],atmInfo[i][az],atmInfo[i][arx],atmInfo[i][ary],atmInfo[i][arz]); updateATM(i); } printf("Es wurde(n) %i ATM(s) geladen.",count); return 1;}


    Habe mir mal die Coords printen lassen, sind absolut korrekt. Habe auch nochmal Syntax angeschaut, scheint aber richtig zu sein.

    Vllt Variable falsch ?`sicher mit Text3D: a_text ? und mir fällt auf lasst den TextLabel doch im Lade Bereich wo alles andere geladen wird auch mit Laden

  • Ich habe einfach mal den ATM kaputt geboxt und siehe da, das 3DLabel kommt hervor. Es lag also am letzten Parameter beim Create3DTextLabel (testLOS jetzt auf 0 == funktioniert). Scheinbar hat der ATM das Label blockiert. :D

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Guten Mittag,


    Ich wollte gerne meine Map in ein Filterscript auslagern soweit so gut leider komme ich an einer stelle nicht weiter.
    Kann ich in einem Filterscript RemoveBuildingForPlayer nutzen? Habe es Probiert unter OnPlayerConnect aufrufen zu lassen leider funktioniert dies nicht. Kann ich es denn überhaupt nutzen bzw wo kann ich es nutzen?



    Mit freundlichen Grüßen
    Pytroxis
    ~Handy

  • Eigentlich sollte das gehen, beachte aber folgendes:


    Du musst, nachdem du das Filterscript geladen hast, zum Server reconnecten da dann OnPlayerConnect erneut aufgerufen werden muss, sodass die Objekte entfernt werden :)


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Nein, er meint das du nicht einfach nur das Filterscript laden darfst wenn du online bist. Du musst es laden und dann noch einmal auf den Server connecten, damit OnPlayerConnect aufgerufen wird. ;)

  • Habe es ganz einfach in die Server.cfg geschrieben.
    Das Filterscript wird ja auch geladen und die Objekte auch erstellt allerdings werden keine Objekte Removet :/
    Also wird OnFilterscriptInit geladen aber nicht OnPlayerConnect (habe in OnPLayerConnect print drin, wird aber nicht ausgegeben => OnPlayerConnect wird nicht aufgerufen)



    MfG
    Pytroxis

    Einmal editiert, zuletzt von Pytroxis ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen