Die Map gefällt mir sehr gut nur fände ich das solch eine Wandtextur welche du in den anderen Räumen benutzt auch in der Lobby besser als das Babyblau.
Beiträge von IPrototypeI
-
-
Da gibts so viele wege das ganz einfach umzusetzen das sind einfach zwei striche die jeweils 1 pixel groß sind nur ist die der unterestrich heller und der obere dunkler.
Man kann das auch mit einem verlauf machen .Der Hauptpunkt ist das du ein dunkleres blau nimmst als der background ist und ein helleres.
Hier sind die Farben
#0483b7
und
#01151e -
-
Hatte es ja vorher mit sscanf, allerdings war der float ebenfalls 0.0000
Das lag an deiner abfolge der specifer so sollte es gehen falls nix ausgegeben wird könnte das noch zusätzlich daran liegen das du die funktion sscanf in deinem skript enthalten hast.
stock LoadTankstellen()
{
new idx,result[128],string[64];
mysql_query("SELECT * FROM tankstellen;");
mysql_store_result();
while(mysql_fetch_row_format(result, "|")){
sscanf(result, "p<|>e<i{i}s[24]ffffffiiii>",Tanke[i]);
CreatePickup(1274,1,Tanke[idx][iconx],Tanke[idx][icony],Tanke[idx][iconz],0);
if(!Tanke[idx][owned])format(string,64,"Tanke %i\nKaufpreis %i", Tanke[idx][id], Tanke[idx][buypreis]);
else format(string,64,"Tanke %i\nBesitzer %s\nLiterpreis %i\n %i /1000l",Tanke[idx][id],Tanke[idx][owner],Tanke[idx][literpreis],Tanke[idx][vorrat]);
Create3DTextLabel(string,0xFFFFFFFF,Tanke[idx][iconx],Tanke[idx][icony],Tanke[idx][iconz],30,0,0);
++idx;
}
printf(" >> %i Tankstellen geladen!", idx);
return mysql_free_result();
} -
Stellst du die Scale auf "0" dann wird das Objekt ganz klein, fügt er dass in SAMP rein wird es automatisch unsichtbar aber man kann darauf laufen. Ich mappe nicht umsonst DM Maps für SAMP :=)
Das wäre mir neu das sowas möglich wäre bei CreateObject gibt es dafür kein parameter , da gehe ich eher davon aus das dies an deinem objekt liegt, welches du verwendest das es auf der einen seite unsichtbar ist. Sowas kennt man ja von dem einen glas oder du meinst mit unsichtbar auch noch das es keine kollisionen hat das würde eventuell daran liegen das dieses Objekt eventuell unter der map ist oder an einem anderen ort.
-
Hier mal ein Ausschnitt aus meiner Debug Datei
SQL[01:11:20] CMySQLHandler::Query(SELECT * FROM tankstellen) - Successfully executed.[01:11:20] >> mysql_store_result( Connection handle: 1 )[01:11:20] CMySQLHandler::StoreResult() - Result was stored.[01:11:20] >> mysql_fetch_row_format( Connection handle: 1 )[01:11:20] CMySQLHandler::FetchRow() - Return: 2|0|Niemand|1961.75|1343.11|15.3746|0|0|0|25000|0|0|0[01:11:20] >> mysql_fetch_row_format( Connection handle: 1 )
Hier mal meine geprinteten results
SQL2|0|Niemand|1961.75|1343.11|15.3746|0|0|0|25000|0|0|0 result1[01:12:52] 2|0|Niemand|1961.75|1343.11|15.3746|0|0|0|25000|0|0|0| result2[01:12:52] 0.000000 <-Float via pos[0]
Wo ich die Prints eingefügt habe
Spoiler anzeigen stock LoadTankstellen()
{Spoiler anzeigen new result[500],idx;
format(result, 128, "SELECT * FROM tankstellen");
print(result);
new ttid,ow[MAX_PLAYER_NAME],Float:pos[3],Float:i[3],bp,v,lp,ond;
mysql_query(result);
mysql_store_result();
//new string[256];
while(mysql_fetch_row_format(result, "|"))
{
print(result);
strins(result, "|", strlen(result));
new oldi=0;
new count=0;
for(new t=0; t<strlen(result); t++)
{
if(result[t]=='|')
{
count++;
new tmpstring[sizeof(result)]; tmpstring=result;
strdel(tmpstring, t, strlen(tmpstring));
strdel(tmpstring, 0, oldi+1);
switch(count)
{
case 1: ttid = strval(tmpstring);
case 2: format(ow, sizeof(ow), "%s", tmpstring);
case 3: pos[0] = floatstr(tmpstring);
case 4: pos[1] = floatstr(tmpstring);
case 5: pos[2] = floatstr(tmpstring);
case 6: i[0] = floatstr(tmpstring);
case 7: i[1] = floatstr(tmpstring);
case 8: i[2] = floatstr(tmpstring);
case 9: bp = strval(tmpstring);
case 10: v = strval(tmpstring);
case 11: lp = strval(tmpstring);
case 12: ond = strval(tmpstring);
}
oldi=t;
}
}
print(result);
Tanke[idx][id] = ttid;
Tanke[idx][owner] = ow;
Tanke[idx][buypreis] = bp;
Tanke[idx][iconx] = pos[0];
Tanke[idx][icony] = pos[1];
Tanke[idx][iconz] = pos[2];
Tanke[idx][kx] = i[0];
Tanke[idx][ky] = i[1];
Tanke[idx][kz] = i[2];
CreatePickup(1272,1,Tanke[idx][iconx],Tanke[idx][icony],Tanke[idx][iconz],0);Spoiler anzeigen printf(" %f ", pos[0]);
idx++;
}
return 1;
}Dein Problem besteht darin jetzt mal bezogen auch auf sscanf das deine splitabfolge nicht richtig ist
2|0|Niemand|1961.75|1343.11|15.3746|0|0|0|25000|0|0|0nur ist das etwas blöd dies richtig zu stellen da ich leider den aufbau dieser tabelle nicht kenne ebenso wie das enum welches du als index nutzt für das array Tanke.
wenn spalten die selbe reihenfolge haben wie deine abfolge im enum wäre das nicht schlecht dann kannst du das problem mit sscanf ganz einfach beseitigen und das ganze auch nochmal vereinfacht umsetzen. -
Es wird ein Objekt erstellt dort wird etwas mit der FUnktion SetObjectMaterialText darauf geschrieben
http://wiki.sa-mp.com/wiki/SetObjectMaterialText_DE , für die hintergrundfarbe wird der Alphawert auf 0 gesetzt 0x00000000.
Danach kann das Objekt an das Fahrzeug attached werden AttachObjectToVehicle -
kannst du mal ein aussschnitt aus der mysql posten wo die daten die er ausließt ausgibt.
also quasi result was du ja ausgibst -
Er meint doch MTA, kein SAMP.
xD Falsch gelesendas geht in MTA auch via
setElementAlpha(Element, Alphawert); -
Warum Timer?OnPlayerUpdate ist da viel effektiver.
Schemißt noch eine ON_FOOT Abfrage mit dazwischen und bist auf der sicheren Seite
Noch Effektiver wäre das Streamerplugin worüber eine Zone erstellt werden kann.
native CreateDynamicCircle(Float:x, Float:y, Float:size, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1); -
Guten Tag liebe Brote & Fische,
wie man der Überschrift schwer entnehmen kann, möchte ich wissen, ob es einen Weg gibt wie in MTA Objekte Unsichtbar zu machen.
Ich bitte um Antwort!MFG
DMGaengster
Dies kannst du mit SetObjectMaterialText oder SetObjectMaterial machen dazu einfach bei dem Farbwert ARGB welcher das format den A Wert auf 0 stellen
Beispiel 0x00000000
SetDynamicObjectMaterial(CreateDynamicObject(19377, 902.26019, -1635.32214, 12.47100, 0.00000, 90.00000, 0.00000), 0, 1649, "lanlacma_lan2", "sl_gallerywall1",0x00FFFFFF);
-
Aber ich kann in einem Befehl z.B. statt immer ; zu nehmen auch , nehmen?
können schon, jedoch wirst du kein Unterschied in der Performance merken. Ich mach das auch ab und zu bei multiplen returns, jedoch laut der Aussage von Y_Less kann man dadurch
seinen ganzen Code kaputt machen sollte man das ganze durchgängig verwenden.return SendClientMessage(playerid,-1,"Bla"),SendClientMessage(playerid,-1,"Bla");
ZitatRichtiges Nutzen von Variablen (Wenn sie nur 0 und 1 speichert nimm nen Boolean anstatt nen Integer)
Das würde ich nicht behaupten eine variabel mit dem tag bool deklariert kann braucht ebenso 4 Bytes wie ein integer.
Da kannst du entweder auf char-arrays umschwenken oder Bit-Arrays nutzen,hier sind nur 32 Bitflags möglich.
enum Bit:(<<= 1){
A=1,
B,
C,
};
new Bit:PlayerValue[MAX_PLAYERS];PlayerValue[playerid] |= A;
ZitatAuch solltest Du deine Schleifen optimieren. Warum MaxPlayers benutzen wenn der Server eh nur 50 Slots hat?
Schreib an dieser stelle eher in deinem Post das man MAX_PLAYERS der slotzahl anpassen sollte.
#undef MAX_PLAYERS
#define MAX_PLAYERS 50//edit Zwei
-
Ist es irgendwie möglich bei GetPlayerPos nur das Z zu getten?
Ich dachte erst, ich könnte es so machen, jedoch bekomme ich dann:
"error 034: argument does not have a default value (argument 2)"new Float:height;
GetPlayerPos(playerid,_,_,height);So funktioniert das nicht ganz da wird nix zurück gegeben, was du jedoch machen kannst wäre
GetPlayerPos(playerid,height,height,height);
aber mit der möglichkeit kannst du nicht auf das 2 oder 3 Argument ausweichen oder du erstellst dir eine globale "fake variabel"
-
Das liegt daran, das PAWN alles nach einander abarbeitet.
Im Grunde nicht Threadsafe/sicher.
Sprich paralelle Aufgabe sind nur zum teil realisierbar.Man kann dem Server / PAWN versuchen zu erzählen, dass Aufgaben paralell auzuführen sind.
In dem man die Aufgaben aneinander reiht.Du kannst auch SendClientMessage(), SendClientMessage(); dem Compiler geben.
Threaded wird das daruch aber nicht.
Allerdings kann PAWN die Aufgabe so schneller bewältigen, da nicht nach einer nächsten Anweisung "gesucht" werden muss, sie ist ja schließlich schon bekannt.Als schonend würde ich das nicht bezeichnen, das ist eher Stilsache, denn wirklich etwas einsparen an Zeit oder Ressourcen tut man nicht.
Um hier noch etwas zu ergänzen.
Der unterschied zwischen den beiden Operatoren ':' und ',' ist das bei dem Semikolon der Opcode break ausgeführt wird und bei dem Komma nicht das bedeutet das der Code schneller ausgeführt werden kann, wie BlackAce das schon angemerkt hatte, jedoch würde ich es nicht empfehlen das ganze durchgezogen im Skript zu verwenden.
Die zwei Operatoren//Edit
Das ganze kann man sich auch anschauen in dem man sein skript mit dem Kompilerparameter -a kompilierst
-
format(string,sizeof(string),"%02d/%02d/%d",Day,Month,Year);
So macht das mehr Sinn.Wenn dein Problem noch immer besteht: Hast du in der Datenbank die Spalte "Datum" auch auf VARCHAR mit der benötigten Länge gesetzt?
Meiner Meinung nach ist das umständlich, da MySQL die Funktion NOW() bietet um das Datum auszugeben.
Auch das auslesen ist kein problem obwohl es in einem anderen Format ist da gibt es die Funktion DATE_FORMAT. -
Zum Forenstil hab ich dir ja schon genug gesagt und bei den Ranggrafiken finde ich den Schein zu stark, das Problem hast du aber bei vielen Sachen.
xD das hast du mir 1 mal gesagt, naja ich schau mal das ich sowas reduziere
-
Zum einen würde ich OnPlayerStateChange verwenden da OnPlayerEnterVehicle aufgerufen wird wenn du f drückst, beziehungsweise g und nicht einmal eingestiegen bist.
Team[playerid] != 1||2||3)Das funktioniert nicht als entweder so
&& Team[playerid] != 1 && Team[playerid] != 2 && Team[playerid] != 3oder
&&(1 <= Team[playerid] <= 3)Ebenso ist dies nicht möglich
SendTeamMessage(2&&3,COLOR_RED,"An alle Einheiten des LSPD:");
dies müsste so aussehen
SendTeamMessage(2,COLOR_RED,"An alle Einheiten des LSPD:");
SendTeamMessage(3,COLOR_RED,"An alle Einheiten des LSPD:"); -
Ich möchte das Logo ja ändern bevor ich das im Forum hochlade das Design, wie genau mache ich das?
Da steht ja immer Winrar kann nur in .rar oder .zip laden aber nicht in .tgz oder wie das heißtDa ich so nett bin werde hier mal das ganze visuell unterstützen.
Unterorder:
wcf -> images ->FDRP oder FDRP_b
oder du fügst das Logo mit einem anderen Namen hinzu und änderst die Bezeichnung des Bildes im acp bei dem Design mit dem Stileditor
Ebenso solltest du die Fonts noch diesem ordner hinzufügen. -
Ohja, da hat er "ausnahmsweise" mal recht!
Der Bau ist bisscher eins der besten die ich je gesehen habe,
jedoch sind die Texturen ein bisschen fehl am platze.Mit freundlichen Grüßen, NewborN
Es ist halt bei manchen gebäuden entwas schwer gewisse texturen für außen zu finden, aber nun gut weiß ist ja auch nicht schlimm ein großteil der Gebäude in Deutschland sind außen auch weiß.
Zum Thema Bau, wenn du willst kannst ja auch den Baustil für eine Map von dir übernehmen. Ich denke das sich der Hauptgebäudekomplex auch sehr gut für ein Wohnviertel eignet.
Mann muss jedoch zugeben das es bei dieser weißen Textur kein geflacker gibt und das erspart einem auch etwas arbeit :D.
Hm eigentlich wollte ich diesen so lassen und noch ein objekt in der mitte plazieren und die Schränke begrenzen, jedoch an welche zusätzlichen Elemente hast du noch gedacht ?
@Rest
Danke für das Positive Feedback -
Warum kommt bei mir den immer Beim Hochladen des Stils ist ein Fehler aufgetreten. ?
Ich muss doch das hier hochladen oder nicht?
freedom-roleplay-blue-style
Ja musst du das ganze funktioniert jedoch nicht bei einem WBB Lite Forum.