Alle 45 Wetterverhältnisse wurden ausprobiert, das Problem ist noch da.
Gemeint ist das Problem ums Fahrzeug auf den Boden. Das Objekt selber scheint ein Würfel zu sein, in den inneren Ecken des Objekts sind niedrig auflösende Reflektionen vorhanden.
Das Tutorial welches du erwähnt hast Edgar, wäre echt eine Hilfe.
Vielleicht hat noch wer eine Idee
Beiträge von Jameso
-
-
Hallo Zusammen,
Das Objekt mit der Nr.: 19294 hat den Bug, dass der Rand das Licht reflektiert.
Hat jemand eine Lösung hierzu? Ich hatte vor das Objekt nach zu machen und es so über 0.3DL zu realisieren...allerdings liegen mir keine Informationen vor, wie man das animierte Licht formatiert...
Vielleicht weiß jemand mehr -
Einer der besten Server seiner Zeit...
Wir sind wieder aktiv!
Da ich gesehen habe, dass ihr eine ganz alte Map von mir auf dem Server habt biete ich mich an aktuelle Maps für euch zu erstellen.
Gerne helfe ich auch bei der Entwicklung neuer Systeme mit. -
Tatsächlich ist die letzte Streamer Version drauf allerdings:
*** Streamer Plugin: The plugin version (0x295) is older than the include file version (0x296) for this script. The plugin might need to be updated to the latest version.
Obwohl ich die Plugin-Datei auch ersetzt habe.
Weitere Infos, kann ich erst die Tage raus geben, wenn ich am PC bin, das sah ich spontan jetzt in den Logs... -
Das neuste Streamer Plugin wurde aufgespielt ohne Verbesserung. Das Skript ist im Gamemode kein Include
Mogly1 keine Änderung gebracht, hatte ich zuvor schon versucht...
Habe jetzt versucht, die Objekte komplett neu erstellen zu lassen, das macht er auch. Allerdings wenn ich wie oben beschrieben den Fehler provoziere spawnt er kein Objekt erstellt aber ein Datenbank Eintrag...
Es ist komisch, dass dieser Fehler nur auftritt, wenn ich die Objekte lade -> Ein weiteres erstelle -> ein bereits vorher geladenes lösche -> ein neues erstelle
Datenbank neu laden mit einem separaten Befehl lässt dieses Objekt nicht erscheinen (Server Neustart schon) -
Ich habe das Problem an einigen Systemen, dass sich Objekte sporadisch nicht löschen lassen bzw. erstellen lassen, wenn diese Ingame erstellt werden.
Das Problem lässt sich wie folgt provozieren:
[Objekte OnGameModeInit laden] -> [/createatm - Zusätzliches Objekt erstellt] -> [/deleteatm von einem bei OnGameModeInit geladenem Objekt] -> [/createatm - Kein Automat zu sehen obwohl alle Ausgaben stimmen]Zusätzlich gibt es selten das Problem:
[/deleteatm - Objekt wird aus der Datenbank gelöscht ist Ingame aber noch zu sehen]
Das Laden und erstellen aus der Datenbank läuft in jedem Fall Problemlos beim laden unter OnGameModeInit.
Versucht wurde mit der Streamer_Update Funktion zu arbeiten, erfolglos...C#
Alles anzeigen//GLOBAL enum atminfo{ db_aid, Float:aX, Float:aY, Float:aZ, Float:aR, atmexistiert }; #define MAX_ATM 300 new aInfo[MAX_ATM][atminfo]; new AtmObjectID[MAX_ATM]; new Text3D:AtmLabelID[MAX_ATM]; //ONGAMEMODEINT mysql_pquery(handle,"SELECT * FROM `atm`","LoadATM"); for (new i = 0; i < MAX_ATM; ++i) { aInfo[i][db_aid] = INVALID_ATM_ID; } //--------------------------------- forward LoadATM(); public LoadATM() { new rows; cache_get_row_count(rows); if(rows==0) return 1; for(new atmid = 0; atmid < rows; atmid++) { if(aInfo[atmid][atmexistiert] == 1) continue; cache_get_value_name_int(atmid,"ID",aInfo[atmid][db_aid]); if(aInfo[atmid][db_aid] == INVALID_ATM_ID) continue; cache_get_value_name_float(atmid,"X",aInfo[atmid][aX]); cache_get_value_name_float(atmid,"Y",aInfo[atmid][aY]); cache_get_value_name_float(atmid,"Z",aInfo[atmid][aZ]); cache_get_value_name_float(atmid,"R",aInfo[atmid][aR]); AtmLabelID[atmid] = CreateDynamic3DTextLabel("Bankautomat",GREEN,aInfo[atmid][aX],aInfo[atmid][aY],aInfo[atmid][aZ],4.0,INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0); //Objekt wird erstellt aber manchmal nicht angezeigt AtmObjectID[atmid] = CreateDynamicObject(19324,aInfo[atmid][aX],aInfo[atmid][aY],aInfo[atmid][aZ],0.0,0.0,aInfo[atmid][aR]); //Objekt wird erstellt aber manchmal nicht angezeigt aInfo[atmid][atmexistiert] = 1; return 1; } forward OnNewATMInserted(); public OnNewATMInserted() { mysql_pquery(handle, "SELECT * FROM `atm`", "LoadATM"); } forward OnATMDeleted(atmid); public OnATMDeleted(atmid) { aInfo[atmid][atmexistiert] = 0; aInfo[atmid][db_aid] = INVALID_ATM_ID; DestroyDynamic3DTextLabel(AtmLabelID[atmid]); //Die richtige ID wird gelöscht, Objekt wird aber nicht immer gelöscht DestroyDynamicObject(AtmObjectID[atmid]); //Die richtige ID wird gelöscht, Objekt wird aber nicht immer gelöscht } ocmd:createatm(playerid,params[]) { new Float:x, Float:y, Float:z, Float:r; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, r); // Spielerrotation erhalten new query[256]; mysql_format(handle, query, sizeof(query), "INSERT INTO atm (X, Y, Z, R) VALUES (%f, %f, %f, %f)", x, y, z, r); mysql_pquery(handle, query, "OnNewATMInserted"); //In der Datenbank einfügen + im Callback den neuen Automaten erstellen. return 1; } ocmd:deleteatm(playerid,params[]) { new query[256]; for(new atmid = 0; atmid < MAX_ATM; atmid++) { if(aInfo[atmid][atmexistiert] != 1) continue; if(IsPlayerInRangeOfPoint(playerid, 1.5, aInfo[atmid][aX], aInfo[atmid][aY], aInfo[atmid][aZ])) { format(query, sizeof(query), "DELETE FROM atm WHERE ID = %d", aInfo[atmid][db_aid]); mysql_pquery(handle, query, "OnATMDeleted", "d", atmid); return 1; } } return 1; }
-
Genau diese Funktion habe ich gesucht, oh man...
-
Ich habe bei meinem Insert Teil eine Rückruffunktion eingebunden, allerdings frage ich mich, woher kriege ich die cacheid für die Funktion cache_get_value_name_int?
Müsste ja theoretisch 0 sein, da es nur ein row gibt...
cache_get_value_name_int(0,"dbID",PCar[playerid][i][P_dbID]);
schmeißt mir aber nur -1 raus... i ist in dem Fall die "Fahrzeugschlüssel"-Nummer die soweit korrekt ist.
Der Wurm ist jetzt schon seit 8 Stunden bei mir drin -
Hallo meine Lieben,
ich benutze das MySQL Include von maddinat0r und seine letzte Version R41-4. (https://github.com/pBlueG/SA-MP-MySQL/releases)
Ich vermisse Abfragen wie cache_get_result_count(), ich kriege mit den Verfügbaren Funktionen es nicht hin, aus einem Insert direkt danach die Datenbank ID raus zu holen.
mysql_num_rows() und mysql_store_result() sowie mysql_free_result() fehlen alternativ auch.
Habe ich was verpasst, gibt es mittlerweile bessere MySQL Includes? -
Wird nicht mehr gesucht.
Vielen Dank an XonarZ -
Hallo,
ich suche hiermit eine UCP Vorlage für SA:MP die ich haben könnte. Da ich sehr perfektionistisch bin möchte ich diese auch Eigenständig bearbeiten.
Backend ist mir am wichtigsten dabei.
Vielleicht hat jemand noch was rumliegen oder würde eigenständig was kreieren.
Habe auch mal nach Vorlagen geguckt finde leider auch nichts was man kaufen könnte...
Meldet euch gerne bei mir am Besten auch mit Preisvorstellung am besten -
Kein Meisterwerk dennoch erkenne ich deine Arbeit am Gamemode an.
Normalerweise setzt man sich im Voraus intensiver mit solchen Dingen auseinander. Für 2023 erwarte ich schon wirklich perfekte Game Modes, da es SAMP jetzt seit knapp fast 20 Jahren gibt. Wobei auch da 'perfekt' nur Auslegungssache ist und ich es überhaupt nicht gelungen finde.
Was erwartet man? Es bleibt oftmals wenig Zeit am Tag sich mit seinem Hobby auseinander zu setzten, nicht zu vergessen, dass man Hobbyscripter ist und nicht studiert hat behaupte ich mal.
Der eine ist perfektionistischer als der Andere, was nicht verwerflich ist im letzten Fall.
Dennoch ist das Ziel des Projekts leider nicht realitätsnah. Ich sehe sowas eher als Kunstwerk anstatt zu denken die SA:MP Szene in Deutschland wiederzubeleben.
SA:MP ist meiner Meinung nach (obwohl ich seit Jahren selber an einem Selfmade dran bin) ein abgeschlossenes Kapitel. -
Haben es herausgefunden, es wird die Sampgraphicrestore Erweiterung benötigt die man sich überall runterladen kann und schon kommt es nicht mehr vor.
Danke trotzdem
-
Hallo,
Das Video sagt mehr als Worte, finde den Fehler einfach nicht.
Vielleicht kennt sich einer von euch aus.
Es wurde das DirectX 3.0 Projekt benutztExterner Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt. -
Für Leute die den gelieferten Code nicht verstehen sowieso nicht zu empfehlen da sie auf Treibsand bauen werden.
Tatsächlich ist es so, dass du dir auch alles erklären lassen kannst. Du kannst die KI fragen, warum hast du da die Abfrage so gemacht und nicht so? Was fragst du da ab und und...
Ich hab jetzt mal bisschen rumprobiert und erklären kann die KI gut und kleine Scripting Fragen kann Sie auch beantworten. Ich persönlich finde es für Anfänger super!
Obwohl ich schon lange scripte ist mein Wissen nur beschränkt, da ich es nur Hobbymäßig mache. Mir persönlich hilft die KI und gibt mir bei manchen Funktionen einen guten Ansatz, wenn ich mal nicht weiter weiß.
Wie von dir erwähnt bei komplexen Sachen hört es auch auf, da hast du recht. -
War ein blödes Beispiel, aber überzeug dich mal selber.
Wenn man sieht, dass da etwas fehlt oder etwas nicht passt kann man ihn darauf aufmerksam machen und er korrigiert es -
Hallo,
Ich würde gerne als Informationen an unsere kleine Scripting Community folgendes weitergeben wollen, falls noch nicht bekannt:
Mittlerweile ist es möglich die Künstliche Intelligenz für euch arbeiten zu lassen.
Das Ganze kann man mit ChatGPT (https://chat.openai.com/) realisieren und spart eine Menge Zeit.
Kann sehr nützlich sein und hilft auch bei der Fehlersuche!
Man schickt der KI den Code und erklärt was nicht funktioniert und er findet tatsächlich den Fehler, was ich persönlich genial finde.
Hier mal ein Beispiel für das erstellen eines Scripts:
Erstell mir ein Schranken Script für SA:MP PawnCode
Alles anzeigen#define MAX_BARRIERS 2 // Barrier data structure new struct BarrierData { Float:x, Float:y, Float:z; Float:rx, Float:ry, Float:rz; bool:closed; } barriers[MAX_BARRIERS]; // Initialize the barrier data public OnGameModeInit() { for(new i = 0; i < MAX_BARRIERS; i++) { barriers[i].closed = false; } } // Create a barrier CMD:create_barrier(playerid, params[]) { new Float:x, Float:y, Float:z; new Float:rx, Float:ry, Float:rz; // Get the player's position and rotation GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, rz); rx = 0.0, ry = 0.0; // Find an available barrier slot new barrierid = -1; for(new i = 0; i < MAX_BARRIERS; i++) { if(!barriers[i].closed) { barrierid = i; break; } } if(barrierid >= 0) { // Store the barrier data barriers[barrierid].x = x; barriers[barrierid].y = y; barriers[barrierid].z = z; barriers[barrierid].rx = rx; barriers[barrierid].ry = ry; barriers[barrierid].rz = rz; barriers[barrierid].closed = true; // Create the barrier object CreateObject(971, x, y, z, rx, ry, rz); // Send a message to the player SendClientMessage(playerid, -1, "Barrier created."); } else { // No available slots, send an error message SendClientMessage(playerid, -1, "There are no available barrier slots."); } return 1; } // Destroy a barrier CMD:destroy_barrier(playerid, params[]) { new barrierid = -1; // Find the closest closed barrier to the player new Float:closest_distance = 999999.0; for(new i = 0; i < MAX_BARRIERS; i++) { if(barriers[i].closed) { new Float:distance = GetDistance3D(barriers[i].x, barriers[i].y, barriers[i].z, GetPlayerPos(playerid)); if(distance < closest_distance) { closest_distance = distance; barrierid = i; } } } if(barrierid >= 0) { // Destroy the barrier object DestroyObject(ObjectFromBarrierID(barrierid)); // Mark the barrier as open barriers[barrierid].closed = false; // Send a message to the player SendClientMessage(playerid, -1, "Barrier destroyed."); } else { // No closed barriers found, send an error message SendClientMessage(playerid, -1, "There are no closed barriers nearby."); } return 1; }
-
Was mich noch motiviert, ist der Fortschritt, den ich am eigenen Projekt mache.
Ob es um das Mapping geht oder Scripting, man kommt immer weiter und wird nie fertig.
Seit 2018 bin ich dabei ein eigenes Roleplay-Script zu erstellen und motiviere mich ganz allein durch die Fortschritte die ich mache -
Moin,
ich suche jemanden, der Interesse und Spaß daran hat kleine Codingfragen u. Unklarheiten (PHP/HTML) zu beantworten und Kontakt zu knüpfen sowie zu pflegen
Es geht um eine Homepage von unserem SA:MP Projekt einiges habe ich schon geschafft nur sind es oft Kleinigkeiten die mich manchmal Stunden kosten...
Klar es gibt ein Sammelthread, bei jeder Kleinigkeit das Problem genau zu beschreiben und zu erklären worum es geht ist echt mühsam, dann noch die Häufigkeit der Beiträge kommt auch noch dazu.
Vielleicht hat ja jemand Interesse -
Kann mir jemand sagen warum diese Funktion mich so aufregt?
MoveDynamicObjectRot(obj, Float:rX, Float:rY, Float:rZ, bool:open)
Ich verstehe es nicht, an einigen Positionen (RZ Achse), möchte er die Objekte nur mit stottern bewegen. Ich achte darauf, die Float Werte 1zu1 zu übernehmen.
Hab hier mal ein Beispiel:C#//Stotternde Bewegung Beispiel1 = CreateDynamicObject(968, -1430.860473, 792.999572, 47.268093, -0.000000, -90.000000, 136.399948, -1, -1, -1, 300.00, 300.00); MoveDynamicObjectRot(Beispiel1, 0.000000, -10.0, 136.399948,true); //Funktioniert einwandfrei Beispiel2 = CreateDynamicObject(968, 526.860107, 475.853881, 19.089714, 0.000000, -90.000000, 35.400009, -1, -1, -1, 300.00, 300.00); MoveDynamicObjectRot(Beispiel2, 0.000000, -10.0, 35.400009,true);
Wenn ich das so übernehme, möchte Beispiel1 nur stotternd sich bewegen, Beispiel2 funktioniert einwandfrei. Seit Tagen muss ich mich damit rumspielenWird das ganze nur mit MoveDynamicObject realisiert mit den Positionen kriegt man Beispiel1 auch nicht "smooth" bewegt. Beispiel2 wiederum schon. Und es wurde dabei beachtet die Objekte anders zu positionieren während die Rotation stattfindet (X,Y,Z +/- 0.01)