SetPVarInt(playerid,"ooc",gettime() + 10);
Anführungszeichen.
SetPVarInt(playerid,"ooc",gettime() + 10);
Anführungszeichen.
Geht nicht, gibts nicht...
Du brauchst einen Timestamp. Das ist die Anzahl der Sekunden seit dem 01.01.1970. Somit kannst Du ohne einen Timer zu verwenden, abfragen, ob man etwas eingeben darf.
Dazu machst du folgendes im /o Befehl:
if(GetPVarInt(playerid,"ochattstamp") > gettime()){
SendClientMessage(playerid,FARBE,"Du kannst noch nicht im OOC schreiben.);
}else{
SetPVarInt(playerid,ochattstamp,gettime() + 10);
//Hier den text an alle Spieler senden(OOC)
}
Das Ganze läuft folgendermaßen ab:
Du fragst ab, ob der Timestamp der zeit, wo man wieder schrieben darf größer der aktuelle Timestamp ist.
Denn wenn der größer ist, als der aktuelle ist die Zeit noch nicht angekommen.
Wenn nein, darf man schreiben und setzt den Wert von der PlayerVariable auf gettime() (Aktueller Timestamp) +10(10 Sekunden später).
Alles anzeigen
C:\Users\admin\Desktop\Script.pwn(24) : error 017: undefined symbol "MAX_HOUSES"
C:\Users\admin\Desktop\Script.pwn(8726) : error 017: undefined symbol "hausid"
C:\Users\admin\Desktop\Script.pwn(8729) : error 017: undefined symbol "hausid"
Function OnPlayerStateChange(playerid, newstate, oldstate)
{
new vehid =AddStaticVehicleEx(487,590.0914,-2487.4451,6.7525,148.8203,7,7); // heli
housecars[hausid][6] = vehid;[/pwn]
Passiert, wenn man es einfach so kopiert und sein GEHIRN ausschaltet...
B2T:
@SurvivalApocalypse:
Das kann garnicht funktionieren...
Dann wird nur das LETZTE Fahrzeug in der Variable gespeichert und das für alle Häuser. Man kann dann also in alle Autos von jedem Haus einsteigen und es benutzen...
@Dante_Black:
Kopiert nicht den Code, sondern mach es nach meiner Hilfestellung, einen kompletten Code erhältst du von mir jedenfalls NICHT.
E
Etwas Genauer? :s
Du machst ein Array:
new housecars[MAX_HOUSES][MAX_VEHICLES];
dann beim erstellen der cars machst du es bspw. so:
new vehid = AddStaticVehicleEx(437,1791.3120,-1929.0166,13.5128,359.6002,61,71,-1);
housecars[hausid][0] = vehid;
und das mit allen Fahrzeugen pro Haus.
Du speicherst alle vehicle IDs in einem Array und fragst dann unter OnPlayerStateChange ab, ob die ID des Fahrzeugs in dem Array vorhanden ist. Wenn ja ===> RemovePlayerFromVehicle()
Ja, das sagte ich doch bereits. Der Query hat mehr als 64 Zeichen. Stell die Größe auf 256.
Also so:
new query[256];
mysql_real_escape_string(AccountInfo[playerid][pAccSicherheitsfrage], AccountInfo[playerid][pAccSicherheitsfrage]);
format(query, sizeof(query), "UPDATE `spieleraccounts` SET `Sicherheitsfrage` = 'Wie heißt du?' WHERE `spieleraccounts` = '%s'",AccountInfo[playerid][pAccName]);
mysql_query(query);
@Blax's:
Der Query hat mehr, als 64 Zeichen, somit ein un vollständiger Query.
Ich wette mit dir, viele Server, die auf MySQL Basis laufen, machen es dem Benutzer möglich, durch einfache SQL Injections die Datenbank zu löschen / manipulieren.
Dazu muss man kein Profi sein.
Lags erscheinen nicht durch die Benutzung von MySQL, sondern hängen davon ab, WIE man es benutzt.
Beispielsweise ist es ein NoGo für jeden einzelnen Wert einen neuen Query zu senden.
Dies trifft auf das Tutorial von maddin bspw. zu.
Dort wird für jeden Wert ein eigener Query gesendet, wodurch Lags erst entstehen.
So sollte man es machen:
mysql_query("UPDATE accounts SET name = 'Trallala', level = 3, aRank = 1 WHERE name = 'LALALA'");
Hier werden mehrere Felder in einem Query bearbeitet.
Außerdem sollte man die Datenbank immer lokal hosten.
Beachtet man dies, wird die Wahrscheinlichkeit von Lags deutlich verringert.
Wenn ich mich nicht irre, dürfen integer Werte nicht in Anführungszeichnen stehen.
case 12;{frakname="News Reporter";}
wieso nach case 12 ein Semikolon? Da kommt ein Doppelpunkt hin.
Bei den darauffolgenden Cases auch.
Hey,
da ich die Waffen des Admins nach dem Beobachtungsmodus wieder geben möchte, habe ich mir ein enum erstellt und darunter ein dreidimensionales Array.
enum wInfo{
awID,
aMuni
};
new aWeaps[MAX_PLAYERS][13][wInfo];
Ich habe also eine Variable (aWeaps) gemacht, wobei ich vorhatte, im ersten Feld die playerid, im 2. den Waffenslot und im 3. die Waffen ID.
Nun habe ich unter OnPlayerSpawn folgendes:
for (new i=0; i<13; i++)
{
if(aWeaps[playerid][i][awID] != 0)
{
giveweapon(playerid,aWeaps[playerid][i][awID],aWeaps[playerid][i][aMuni]);
}
}
Doch leider gibt er die Waffen nicht wieder. Also bin ich auf die Idee gekommen, dass es am Array liegen könnte, ist ein dreidimensionales Array in der Form überhaupt möglich?
//EDIT: Hat sich erledigt, war meine eigene Blödheit. xD
Danke schonmal.
Viele Grüße.
Ich könnte schwören, einen solchen Servernamen im Forum meines DM Servers gelesen zu haben, als dieses mit Abwerbethreads zugespammt wurde.
Ist das Ihre Geschäftsstrategie? Spannend.
Nun muss ich mal hier allen widersprechen, es sieht meiner Meinung nach NICHT gut aus.
Ich habe es mir mal angeschaut und ich finde es vom Design her alles andere, als nutzerfreundlich.
Es ist viel zu dunkel, man muss ständig nach unten Scrollen, wenn man auf eine neue Seite geht, weil oben unnütze Dinge hingepackt wurden, die eigendlich auf die Startseite gehören(Level, etc. pp.).
Außerdem tut es ja im Kopf weh, wenn man ständig schwarz und grau sieht und dann so PLÖTZLICH drängt sich einem so ein türkiser Button ins Auge.
Also vom Design her sollte etwas gemacht werden, ansonsten schön(wenn auch nicht wirklich viele Funktionen).
PAWN ist case sensitive. Bedeutet: Du musst auch die korrekte Schreibweise beachten(ist allerdings in Bezug auf Variablen bei der Programmiersprache so)
Du hast einmal "Eingeloggt" verwendet und einmal "eingeloggt".
Du musst auch eine Definition von Spielerdaten erstellen. In dem Falle in Form eines Enumerators.
Beispiel:
enum SPielerdaTen{
level,
adminrang,
etc
};
Ansprechen tust du es dann wie folgt:
Um bspw. das Level zu speichern:
Spieler[playerid][level] += 1;//Erhöht das Level um 1
Aus diesem Fehler resultiert auch der Fehler von den weiteren Codeblöcken, denn der Compiler kann mit Eingeloggt bspw. nichts anfangen, da er es nicht kennt. Also im Enum musst Du alle Variablen definieren.
Ich höre meistens Elektromusik, speziell Dubstep und House und Rap. Kein Mensch ist gleich. Ich kann bspw. nicht verstehen, wie man sich Schlagermusik anhören kann.
Allerdings beruht dies auf Gegenseitigkeit. Schlagerfans würden mich jetzt bestimmt kreuzigen wollen, dies aber auch umgekehrt.
Jeder hat einen anderen Geschmack und das ist auch völlig in Ordnung so.
Komplette Anleitung:
Du machst eine For Schleife, die alle Spieler durchläuft. Dann fragst du mit GetPlayerWeaponData ab, ob es sich bei der aktuellen Waffe um einen Schlagring handelt, wenn ja, fragst du ab, ob er davon 1000 Stück hat. So habe ich es gemacht und einige wurden schon gebusted. :>