Hier ist kein Fehler in diese Zeile zu erkennen.
Schicke uns mal bitte einige (10) Zeilen drüber und drunter.
Hier ist kein Fehler in diese Zeile zu erkennen.
Schicke uns mal bitte einige (10) Zeilen drüber und drunter.
Zitatvon den was nicht geht
Eine noch umständlicher Formulierung ging wohl nicht?
Ohne Worte...
__
Zum Thema:
Schick uns bitte mal die Funktionen, die das Laden Deiner
Geschäfte und Häuser übernehmen und auch, die diese
sichern.
Problem einfach gelöst:
ocmd:o(playerid,params[])
{
if(!noooc && PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid,COLOR_RED,"Der Globaler Chat ist deaktiviert!");
new text[128];
new string[128];
new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid,Name,sizeof(Name));
if(sscanf(params,"s",text)) return SendClientMessage(playerid,COLOR_RED,"Benutzung /o [text]!");
format(string,sizeof(string),"[Globaler-Chat] %s: %s",Name,text);
SendClientMessageToAll(COLOR_WHITE,string);
return 1;
}
Entschuldigung!
Ich war gerade im falschen Thema.
Nein, Deine Funktion, die sekündlich ausgeführt wird,
muss nicht mit einem Timer beendet werden.
Füge Deine Sachen einfach in eine Funktion ein, die
SOWIESO schon sekündlich ausgeführt wird.
Das wäre das einfachste!
Die Funktion KillTimer() musst Du hier nicht anwenden.
Warum?
Beim Aktivieren des Timers mit SetTimer() legst Du bei
dem Parameter repeat false fest, d.h. Dein Timer wird
nur einmal ausgeführt.
Somit ist diese Funktion völlig überflüssig
Ich bezweifle, dass an diesen Gerüchten viel dran ist.
Warum?
Ich habe das iPhone 5 selbst gekauft und muss sagen,
dass die Qualität wie immer, einwandfrei ist.
Als Info:
Die Rückseite des iPhones ist aus Aluminium und somit
eigentlich abriebfest gegen den altäglichen Gebrauch.
Das gratzfeste Glas auf der Vorderseite sowieso.
Laut Tests einiger großer Firmen und Zeitungen, schneidet
das iPhone Display sowieso immer am besten ab.
Nicht nur die Auflösung, sondern auch die enorme Belastbarkeit.
Auch gegenüber anderen Smartphones nur zu empfehlen.
Aber damit löse ich mit Sicherheit wieder die riesige Diskussion
der Apple-Produktliebhaber gegen billige Plakiate aus.
Ok, die Lösung ist denkbar einfach!
ocmd:o(playerid,params[])
{
if(ooc == 0) // <-- nicht ooc sondern noooc return SendClientMessage(playerid,COLOR_RED,"Der Globaler Chat ist deaktiviert!");
new text[128];
new string[128];
new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid,Name,sizeof(Name));
if(sscanf(params,"s",text)) return SendClientMessage(playerid,COLOR_RED,"Benutzung /o [text]!");
format(string,sizeof(string),"[Globaler-Chat] %s: %s",Name,text);
SendClientMessageToAll(COLOR_WHITE,string);
return 1;
}
Wenn die Admins den Chat deaktivieren, wird die Variable noooc
aus false gesetzt und NICHT die Variable ooc.
Also löst Du Dein Problem wie folgt und änderst die Kleinigkeit:
ocmd:o(playerid,params[])
{
if(!noooc) return SendClientMessage(playerid,COLOR_RED,"Der Globaler Chat ist deaktiviert!");
new text[128];
new string[128];
new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid,Name,sizeof(Name));
if(sscanf(params,"s",text)) return SendClientMessage(playerid,COLOR_RED,"Benutzung /o [text]!");
format(string,sizeof(string),"[Globaler-Chat] %s: %s",Name,text);
SendClientMessageToAll(COLOR_WHITE,string);
return 1;
}
Spielt ihr nun lokal in einem Netzwerk oder über eine
feste Server Adresse bzw. ein Peer-2-Peer Netzwerk?
Teil uns das mal bitte mit, dann helfen wir Dir
Wenn Du möchtest, kann ich es Dir später per TeamViewer lösen.
Vorausgesetz Du hast TeamViewer und vielleicht noch Teamspeak.
Anstatt Dein Problem mit TextDrawColor zu lösen, würde ich es
vor der Funktion TextDrawSetString() selbst lösen.
if(vHealth >= 750) format(string, sizeof(string), "~g~%.0f", ((1000 - vHealth) / 10));
else if(vHealth < 750 && vHealth >= 450) format(string, sizeof(string), "~y~%.0f", ((1000 - vHealth) / 10));
else format(string, sizeof(string), "~r~%.0f", ((1000 - vHealth) / 10));
TextDrawSetString(ZustandAnzeige, string);
Wie wäre ein zusätzlicher Parameter Deiner Anweisung?
Anstatt nur /carkey einzutippen, könntest Du folgendes verwenden:
[BEFEHL] /carkey [Schlüssel-Nr (1-4)]
Tippst Du dann bsp. /carkey 4 ein und der Spieler hat keinen
Schlüssel für den vierten Slot, kommt eben eine Fehlernachricht.
Hat er einen, benutzt er ihn dann zwangläufig.
Nein kann ich leider nicht.
Da ich selbst nicht genau weiß, was von Dein Script aus noch reingehört.
Ich kann Dir soviel verraten, folgendes muss noch rein:
- Tank vom Fahrzeug wieder 100%
- Spieler wird entfreezed
- Refueling[playerid] muss zurückgesetzt werden zu false
- Geldbetrag muss dem Spieler abgezogen werden
Das sind die wichtigsten Dinge die rein müssen.
Natürlich solltest Du folgende Anweisungen beachten:
-> nicht genug Geld = kein Tanken möglich
-> ist Fahrzeug bereits voll = kein Tanken nötig
-> Tankeinheitenumrechung in Geld nicht vergessen - bsp. 1L = 10$ usw.
Du legst eine Funktion an, mit dem Namen Fillup, die
das Tanken überprüft und den Spieler wieder entfriert.
Es muss folgender Inhalt vorkommen:
public Fillup()
{
Refueling[playerid] = 1;
TogglePlayerControllable(playerid, 1);
...
}
Den Rest solltest Du Dir ja nun denken können...
Wo ist dann bitte Dein Problem?
Wie heißen Deine Variablen, die die Schlüssel ID, des Spielers speichern?
Für alle vier müsstest Du ja eine oder vier haben.
Siehst Du und schon hast Du Dein Problem gefunden.
Ich erkläre es Dir:
- Du tankst
- frierst den Spieler ein
- lässt einen Timer ablaufen
... und dann ist Schluss.
Den Timer Fillup musst Du auch erstellen, der Dich
dann wieder entfriert und Deinen Tank auch gefüllt hat.
Ich verstehe nicht, warum Du es so kompliziert machen möchtest?
Wenn die Anzeige sekündlich, minütig o.ä. aktualisiert wird,
musst Du keine Funktion schreiben, die einen möglichen Crash
berechnet.
Leg eine sekündliche oder minütige Funktion fest, die Dir die
Werte einfach aktualisieren. Das wäre das beste und einfachste.
Von allem anderen rate ich Dir ab.
Hallo Marv!
Zeig mir mal bitte die Funktion zu folgendem Timer:
public Fillup()
{
...
}
Was hättest Du denn gern als Dialog?
Ist es nur die Nachricht, welcher Schlüssel zu welchem Fahrzeug gehört?
Oder möchtest Du die Schlüsselwahl mit einem Dialog verarbeiten?
Wie wäre es mal, wenn Du uns genau mitteilst, was Du willst?
Dann solltest Du das Problem also folgendermaßen lösen:
format(string, sizeof(string), "* Waffenanzahl: %d", fraktionskasse[amemento]);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "* WaffenLevel %d", fraktionskasse[memento]);
SendClientMessage(playerid, COLOR_GREY, string);
Da ich recht hatte, bezüglich Deiner Variable, dass diese
keine String war, denke ich mir so dass memento auch kein String sein wird.