Ja Erklärung hat gefehlt thx das ihr beiden mich korrigiert habt
//edit
in der Abfrage vom Level hatte ich mich verschrieben anstatt "%s" muss "%d" dahin
Ja Erklärung hat gefehlt thx das ihr beiden mich korrigiert habt
//edit
in der Abfrage vom Level hatte ich mich verschrieben anstatt "%s" muss "%d" dahin
Danke für die Erklärungen...Funktions und Variablendefinition werd ich mir nochmal ansehen.
maddin: Beim compilen haut er mir das warning raus und das Level wird auch nicht angezeigt:
C:\Users\xxx\Desktop\samp03csvr_R2-2_win32\filterscripts\Level1.pwn(28) : warning 219: local variable "level" shadows a variable at a preceding level
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Warning.
Maddin hat vergessen:
forward level1(playerid); // muss anders als level heißen :D
public level1(playerid){}
mfg.
Entweder stell ich mich gerade dumm an oder da stimmt immernoch was nicht, das gibt mir nen fehler in zeile 20 und 29 an und meint level ist undefined...:
#define FILTERSCRIPT
#include <a_samp>
#if defined FILTERSCRIPT
forward level1(playerid); // muss anders als level heißen :D
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}
public OnPlayerSpawn(playerid)
{
level(playerid); // Lässt das Level erscheinen.
/* Du möchtest ja das level von dem angegeben spiler verwenden, also geben wir den parameter "playerid" mit dazu. */
return 1;
}
public level1(playerid)
/* nach dem Public kommt direkt die klammer, und erst dann kannst du variablen mit new erstellen */
{
new level = GetPlayerScore(playerid);
new string[10];
/* ein string mit der länge von 2 ist mit sicherheit zu klein, dur brauch ja allein schon für das wort "Level" 5 zeichen. Also:
Level = 5 zeichen
: = 1 Zeichen
Die zahl (ich geh jetzt mal davon aus dass das level nicht höher als 999 sein wird) also nochmal 3 zeichen.
Macht 5+1+3+1 = 10*/
format(string, sizeof string, "Level:%d", level);
/* die variable "level" ist ein integer, also eine zahl. Und für zahlen wird %d oder %i benutzt. %s ist für strings, also zeichenketten.*/
new Text:leveltext;
/* du hast der variable "level" schon den Score zugewiesen, also musst du für den/das Textdraw eine andere bzw neue variable nehmen. Und bei textDraw muss der
Text: -tag davon sein.*/
TextDrawHideForAll(leveltext);
leveltext = TextDrawCreate(498,110,string);
TextDrawLetterSize(leveltext, 0.6, 1.8);
TextDrawFont(leveltext, 3);
TextDrawSetOutline(leveltext, 2);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
In Zeile 20 muss au level1 stehen so wie deine "public" Funktion
Hab ich gemacht, bleibt immernoch weg. Keine Ahnung ob das auch damit was zu tun hat, dass mein Uhr-script nichtmehr angezeigt wird, obwohl er eingefügt ist und eben noch ging .
//EDIT: Die Uhr wird wieder angezeigt!
ja das liegt daran, dass Maddin das geschrieben hat:
TextDrawHideForAll(leveltext); // versteckt den Text für alle
schreibt einfach:
TextDrawHideForPlayer(leveltext); //so sollte das funzen :D
mfg.
2 Warnings und es funktioniert nicht...
#define FILTERSCRIPT
#include <a_samp>
#if defined FILTERSCRIPT
forward level1(playerid); // muss anders als level heißen :D
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}
public OnPlayerSpawn(playerid)
{
level1(playerid); // Lässt das Level erscheinen.
/* Du möchtest ja das level von dem angegeben spiler verwenden, also geben wir den parameter "playerid" mit dazu. */
return 1;
}
public level1(playerid)
/* nach dem Public kommt direkt die klammer, und erst dann kannst du variablen mit new erstellen */
{
new level = GetPlayerScore(playerid);
new string[10];
/* ein string mit der länge von 2 ist mit sicherheit zu klein, dur brauch ja allein schon für das wort "Level" 5 zeichen. Also:
Level = 5 zeichen
: = 1 Zeichen
Die zahl (ich geh jetzt mal davon aus dass das level nicht höher als 999 sein wird) also nochmal 3 zeichen.
Macht 5+1+3+1 = 10*/
format(string, sizeof string, "Level:%d", level);
/* die variable "level" ist ein integer, also eine zahl. Und für zahlen wird %d oder %i benutzt. %s ist für strings, also zeichenketten.*/
new Text:leveltext;
/* du hast der variable "level" schon den Score zugewiesen, also musst du für den/das Textdraw eine andere bzw neue variable nehmen. Und bei textDraw muss der
Text: -tag davon sein.*/
// TextDrawHideForAll(leveltext);
TextDrawHideForPlayer(leveltext);
leveltext = TextDrawCreate(498,110,string);
TextDrawLetterSize(leveltext, 0.6, 1.8);
TextDrawFont(leveltext, 3);
TextDrawSetOutline(leveltext, 2);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#endif
C:\Users\xxx\Desktop\samp03csvr_R2-2_win32\filterscripts\Level1.pwn(42) : warning 213: tag mismatch
C:\Users\xxx\Desktop\samp03csvr_R2-2_win32\filterscripts\Level1.pwn(42) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
2 Warnings.
Ups ja mein Fehler Probier mal:
TextDrawHideForPlayer(playerid, leveltext);
Weiterhin nichts von der Levelanzeige zu sehen.
Probier mal das:
#define FILTERSCRIPT
#include
#if defined FILTERSCRIPT
forward level1(playerid); // muss anders als level heißen :D
forward weil();
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}
public weil();
{
SetTimer("level1", 600, 1);
return 0;
}
public level1(playerid)
/* nach dem Public kommt direkt die klammer, und erst dann kannst du variablen mit new erstellen */
{
new level = GetPlayerScore(playerid);
new string[10];
/* ein string mit der länge von 2 ist mit sicherheit zu klein, dur brauch ja allein schon für das wort "Level" 5 zeichen. Also:
Level = 5 zeichen
: = 1 Zeichen
Die zahl (ich geh jetzt mal davon aus dass das level nicht höher als 999 sein wird) also nochmal 3 zeichen.
Macht 5+1+3+1 = 10*/
format(string, sizeof string, "Level:%d", level);
/* die variable "level" ist ein integer, also eine zahl. Und für zahlen wird %d oder %i benutzt. %s ist für strings, also zeichenketten.*/
new Text:leveltext;
/* du hast der variable "level" schon den Score zugewiesen, also musst du für den/das Textdraw eine andere bzw neue variable nehmen. Und bei textDraw muss der
Text: -tag davon sein.*/
// TextDrawHideForAll(leveltext);
TextDrawHideForPlayer(playerid, leveltext);
leveltext = TextDrawCreate(498,110,string);
TextDrawLetterSize(leveltext, 0.6, 1.8);
TextDrawFont(leveltext, 3);
TextDrawSetOutline(leveltext, 2);
return 1;
}
public OnFilterScriptExit()
{
KillTimer(weil);
return 1;
}
#endif
An nen Timer hab ich auch schon gedacht, aber bei deiner Variante sagt er mir, er könnte nicht vom file "" in der include zeile lesen, aber füge ich da <a_samp> ein, haut er mir 3 fehler raus.
Wie waere es mal mit 'TextDrawShowForPlayer'?
ne frage hatte das bei dcmd so:
[s]dcmd_tt(playerid,params[]) return dcmd_taketicket(playerid,params);[/s]will das aber jetzt in ocmd aber bekomme errors, mein cmd:
[s]ocmd:tt(playerid,params[]) return ocmd:taketicket(playerid,params);[/s]
Errors:
[s]Zeile (56271) : Ungültiger Befehl
Zeile (56271) : Ungültiger Befehl
Zeile (56272) : warning 209: function "ocmd_tt" should return a value[/s]
/edit gelöst, jetzt neues Problem..
Neues Problem:
Wenn ich bei mir . schreibe wurde es immer gelöscht habe dann bei OnPlayerText (Godfather)
das raus gemacht:
new lastidx = (strlen(text) - 1);
if(text[lastidx] == '.')
text[lastidx] = ' ';
Jetzt steht wenn ich schreib und ein . drin ist:
Tommyx3: ..
oder auch so: Tommyx3: lalala...
aber wenn ich kein . schreibe kommt:
Tommyx3 sagt: blabla
Hallo, ich habe ein Problem, und zwar ich möchte einem String entnehmen ob der erste! Buchstabe ein großes "T" ist.
Meine Vorgehensweise bisher:
if(strfind(string, "T", false) == 1)
Was ist daran falsch ?
Danke im Voraus.
Hallo, ich habe ein Problem, und zwar ich möchte einem String entnehmen ob der erste! Buchstabe ein großes "T" ist.
Meine Vorgehensweise bisher:
if(strfind(string, "T", false) == 1)
Was ist daran falsch ?
Danke im Voraus.
Laut sa-mp wiki duerfte das folgende funktionieren:
if(strfind(string, "T", false) == 0)
Da kein Buchstabe vor dem 'T' sein soll und strfind die Anzahl an Buchstaben vor dem ersten Auftreten des Substrings zurueckgibt.
Eine andere Moeglichkeit die etwas schneller geht, da strfind vermieden wird waere:
if(string[0] == 'T')
Danke SBIKA, sehr gute Arbeit mit 0 statt 1 läufts wie gewünscht...
Hier einen saftigen Keks für Sie als Lohn, thx
moin hab mal ´ne frage
wenn einer vorm lspd steht und virtualworld 1 hat und ein anderer 0 dann sehen sie sich doch nicht oder?
Nein, dann sieht man sich nicht.