Da man das alte Skill-Level nicht auslesen kann, müsstest du dir da selbst die funktionen basteln
So wie du es machen möchtest, würde es aber nicht klappen.
MfG Firer
Da man das alte Skill-Level nicht auslesen kann, müsstest du dir da selbst die funktionen basteln
So wie du es machen möchtest, würde es aber nicht klappen.
MfG Firer
(FraktionsKasse[0]/1000)*2;
Versuchs mal so
Puhh..
Ich erkenne gerade so in dem Code keine Fehler.
Ändere mal die Endung auf .ini und versuchs mal.
Ist zwar unwahrscheinlich, aber man sollte nichts unversucht lassen.
In dieser Form habe ich das noch nie gesehen, sagen wir es so
Aber ähnliche Systeme gibt es bestimmt.
Genau das wollte ich für eine Verbesserung vorschlagen.
"OnPlayerEnterInterior(playerid,interior)"
"OnPlayerLeaveInterior(playerid,interior)"
Aber ansonsten muss ich sagen - verdammt saubere Arbeit!
MfG Firer
Ich wurde damals auf die TimeStamp-Funktion verwiesen.
Damit habe ichs auch geschafft, ein funktionierendes AntiCheat zu basteln.
Falls du nicht weist, was TimeStamp ist:
Die Funktion returnt die Sekunden seid dem 01.01.1970.
Somit kannst du wunderbar Zeiten als Integer abfragen.
Gehen wir davon aus, vor 5 Minuten würde TimeStamp 2500 returnen.
Jetzt rechnest du einfach die Zeit in Sekunden dazu (5 Minuten = 5*60 = 300 | 2500+300 = 2800)
Nun kannst du wunderbar abfragen, ob der Ban schon ausgelaufen ist
stock mktime(hour,minute,second,day,month,year)
{
new timestamp2;
timestamp2 = second + (minute * 60) + (hour * 3600);
new days_of_month[12];
if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) {
days_of_month = {31,29,31,30,31,30,31,31,30,31,30,31}; // Schaltjahr
} else {
days_of_month = {31,28,31,30,31,30,31,31,30,31,30,31}; // keins
}
new days_this_year = 0;
days_this_year = day;
if(month > 1) { // No January Calculation, because its always the 0 past months
for(new i=0; i<month-1;i++) {
days_this_year += days_of_month[i];
}
}
timestamp2 += days_this_year * 86400;
for(new j=1970;j<year;j++) {
timestamp2 += 31536000;
if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) timestamp2 += 86400; // Schaltjahr + 1 Tag
}
return timestamp2;
}
stock Now()
{
new hour,minute,second,year,month,day;
gettime(hour, minute, second);
getdate(year, month, day);
return mktime(hour,minute,second,day,month,year);
}
Auslesen einfach mit "Now();"
Hoffe das hilft dir, hatte da auch lange mit zu kämpfen.
MfG Firer
Welches System zum speichern nutzt du?
Ist mit DINI am leichtesten:
Datei Auswählen und Beschreiben.
Dann einfach dafür sorgen, dass sich die Ingame-ID's nicht verändern.
Sonst gibts da ID-Verschiebungen, die du nur mit ner "DB-VehicleID" lösen könntest.
Dafür würde sich aber MySQL besser eignen.
MfG Firer
public OnGameModeInit()
{
AddStaticVehicleEx(model,x,y,z,angle,farbe1,farbe2,respawnzeit[ambesten -1]);
// usw.
return 1;
}
Schau dir im Wiki mal die Funktion
"AddStaticVehicleEx"..
Ausserdem werden die Cars, die direkt beim Serverstart da sollen unter "OnGameModeInit()" reingetan.
OnVehicleSpawn wird aufgerufen, wenn ein Car spawned.
Wenn du keine Cars hast, wirds logischerweise nicht aufgerufen
Wenn es aufgerufen wird, spawnen deine Cars dann öfters.
Hast du nur beim Server-Update nur deine Includes geupdatet oder auch den Server an sich?
Glaube ist mit "switch" und case nicht machbar da du dort nur so abfragen kannst:
switch(variable)
case 1:{...}
case 2,3{..}
}
Bitte verbessert mich falls ich falsch liege.
Wenn das funktioniert ist es auch für mich von nutzen!
//EDIT:
Frage falsch verstanden.
Versuchs so:
switch(GetPlayerCameraMode(playerid))
case 1:{...}
case 2,3{..}
}
Wenn das jetzt eine Diskussion sein soll, wer der beste Scripter ist, habt ihr beide sowieso verkackt.
@Jamal:
Das glaubt dir hier keiner.
Aus dem einfachen Grund, dass Scriptanfänger zwar vielleicht viele Zeilen schaffe, aber mit wenig funktionen.
Ich wette, ich haue in 1000 Zeilen dass, wofür du ~2000 brauchst und das meins nachher besser und resourcenschonender läuft.
Das tut aber nichts zur sache.
Wenn du Anfänger bist, solltest du aber trozdem ein Filterscript erstellen können.
Das ist so ziemlich das erste was man lernt.
MfG Firer
Filterscript erstellen und die Objecte bei "OnFilterScriptInit" laden.
ist das denn so schwer?
http://wiki.sa-mp.com/wiki/SetPlayerAttachedObject
http://wiki.sa-mp.com/wiki/Bone_IDs
Verwende doch einfach diese Funktionen
Check mal die "StreamDistance" aus.
Ansonsten mal neue Includes ziehen und neu compilen.
Nutzt du nen Streamer?
Hmm.. hast du Skype?
Wenn ja - Add Me -> firerfan96
Dann frage ich mich allerdings, warum der Server über Namen und nicht über Steam-ID's speichert O.o
Naja, ist nicht meine Marterie
Verknüpf ne Variable mit nem Enum.
Dort speicherst du die SpielerID und die Objekt-ID vom erstellten Objekt.
Dannach ists doch einfach nurnoch abfragen, aufstellen & löschen.
Nur viel Code, aber eigentlich gaaaaanz einfach.
MfG Firer
Die Include-Datei gehört aber in dein Pawno/includes Ordner rein