Nikotinpflaster?
Beiträge von ChristianW
-
-
Da ist ein Klammerfehler?
-
Nein, das ist ein Tabsprung. Das Forum zeigt nur einen Tabsprung größer an als 4x Leerzeichen, in pawno ist das gleich. Ich arbeite eigentlich am PC immer mit TAB.
Einfach mal den Code markieren, dann siehst du, dass es nur ein TAB ist.Okay hättest du evtl noch nützliche stocks die hier nicht gepostet wurden?
Du hast ja immer etwas was ein verwundern kann
-
Kann es sein das bei deinem Code Doppeltab ist?
-
Herausfinden wie breit sämtliche, möglicherweise vorkommenden Zeichen in Pixeln sind und zusammenrechnen. Herausfinden bei wievielen Pixeln im Dialog ein Tabstop beginnt und dann den Taschenrechner rausholen.
Das bekomme ich nicht hin

-
Liegt daran, dass du die Länge des Textes bei gegebener Schriftart eben NICHT nach Zeichen zählen kannst, da ein i beispielsweise weniger Platz in der Breite verbraucht als ein o oder x oder p.
Demnach musst du, wenn es wirklich funktionieren soll, die Breite des Textes berechnen und damit dann ausrechnen, in welchen Tabstop er sich momentan befindet. Dadurch weißt du dann, wieviele Tabs er weiter hüpfen muss.und wie mache ich sowas am besten?
-
Da ist nix fehlerhaft, das ist schon korrekt so.
\t steht für einen Tabstop ( http://en.wikipedia.org/wiki/Tab_stop ) und simuliert quasi das Drücken der Tabulator-Taste. Dadurch springt der Text eben zu besagtem, nächsten Tabstop.
ja aber schau dir mal das bild an egal wie ich die erste Zeile lang mache die Spalten sind nie auf einer Ebene schau halt maleben das Bild an -
Aber es gibt doch schon GetWeaponName. Warum also das Rad neu erfinden?^^
Alter -,- ich habe hier extra im Forum nachgefragt ob es so eine Funktion gibt aber viele sagten da ne gibts nicht ....
Naja wayne

Edit: Jeffry: habe das extra mit nem Stock gemacht da die Neulinge besser damit anfangen als gleich das unübersichtliche mit den news

Dazu wusste ich nicht das es sowas gab sehe oben
Gruss
-
Hey Com,
Für alle Zeichen, die kleiner als 6 sind funktioniert das einrücken nicht:
Ich änder da schon seid 30 mins rum aber es geht einfach nciht
switch(strlen(GetWeaponNameById(i)))
{
case 0..4: format(buffer,sizeof(buffer),"#%i | Waffenname: %s \t\t\t| Status: %s\n",i, GetWeaponNameById(i), text);
case 5..11: format(buffer,sizeof(buffer),"#%i | Waffenname: %s \t\t| Status: %s\n",i, GetWeaponNameById(i), text);
case 12..30: format(buffer,sizeof(buffer),"#%i | Waffenname: %s \t| Status: %s\n",i, GetWeaponNameById(i), text);
}Achtet auf: \t\t\t | \t\t |\t
Screen davon: http://rgn.nicowiss.de/sa-mp-001.pngDanke euch
-
Musst nach der dll schauen und dann in den Server ordner packen
-
Hast du das selbst gescriptet oder ge c & p?
-
Alles anzeigen
Deine if Bedingung wartet darauf, dass strcmp 1 zurückgibt.
Bsp:
if(test){}
if(test == 1) {}Ist das selbe..
asoo

-
Alles anzeigen
Was verstehst du denn daran nicht?
Hier prüfst du nicht den return Wert gegen 0:
if(strcmp(Fraktion[i][f_name], name, true))
Prüf doch ob die Funktion strcmp dir 0 zurück gibt und schon bist du fertig.
Nein, lesen was ich geschrieben habe und am besten den Wiki Artikel dazu.Das kapier ich nicht die Wiki auch nicht was returnt denn mein strcmp?
-
Da kommt falsch / false / 0 etc pp heraus kommen bei strcmp, wenn die Strings identisch sind.Ein ! vor strcmp tut es auch.
http://wiki.sa-mp.com/wiki/StrcmpReturns
-1 if string1 comes before string2
1 if string1 comes after string2
0 if the strings are the same (for the matched length).Hä und was ist dann jetzt falsch muss ich statt true false schreiben?
-
Da muss falsch raus kommen,damit der Name bereits belegt ist.
Wie jetzt es ist egal ob ich ein ! oder nicht davor mache beides geht nicht? Was mache ich falsch
-
hä ?!
Was hast du vor?
Ich hab dir da ein Muster gegeben wie du das mit ocmd machst
mit den Parametern musst du es schon machen, da ich nicht weiß was du haben willst bzw vor hastIch möchte einfach eine Funktion aufrufen:
Dies geht mit CallRemoteFunction oder CallLocalFunction
-
einen
Nee ich habe jetzt keine Lust den ganzen Code rüberkopieren
ocmd:showweapons(playerid,params[])
{
new text[20], i = 1, string[2944], buffer[64], count = 1;
for(; i < 46; i++)
{
if(i != 19 && i != 20 && i != 21)
{
switch(Weaponwhitelist[i])
{
case false: { text = "Erlaubt"; }
case true: { text = "Verboten"; }
}
format(buffer,sizeof(buffer),"#%i | Waffenname: %s | Status: %s\n",i, GetWeaponNameById(i), text);
strcat(string,buffer);
weaponarray[playerid][count] = i;
count++;
}
}
return ShowPlayerDialog(playerid,DIALOG_ALLOWEDWEAPONS,DIALOG_STYLE_LIST,"Waffeninformationen:",string,"Weiter","Beenden");
}Deshalb gibt es ja sowas wie CallLocalFunction oder sowas ich weisst nichtmehr genau wie das hiess
-
Hey Com,
Wie ging das nochmal eine Funktion aufzurufen
Mein Bsp wäre jetzt ocmd:weaponlist
Wäre nett:
Dazu wäre es nett wenn ihhr mir sagt wie ich das aufrufe /lalal parameter
Danke euch
-
Ehrlich gesagt ich habe 0 Plan was ich machen muss bin jetzt 5 Minuten rumgelaufen, so als ob ich auf ner lehren Map gelaufen wäre?
-
Solltest halt das i im Kopf Schleife deklarieren, dann hast du solche Probleme nicht.
Nach der 1. Schleife wird i = MAX_FACTIONS sein, falls break nicht eintrifft. Da i = MAX_FACTIONS ist,kann die 2. Schleife nie gestartet werden. Solltest also i zurücksetzen.Habs schon selbst rausgefunden habe jetzt darunter i = 0 geschrieben

Danke trotzdemEdit: Jetzt geht die for Schleife nr 1 nicht, ich kann 2 mal die Fraktion lala erstellen?