Wow,das sieht mal wirklich gut aus.
Muss ich mir mal Ingame angucken :0
Beiträge von Goldkiller
-
-
for(new i=1;i<MAX_AUTOS;i++)
{
new s[64];
format(s,sizeof(s),"/cars/car%d.txt",i);
if(dini_Exists(s))
{
dini_IntSet(s,"Tank",CarInfo[i][Tank]);
dini_FloatSet(s,"KM",CarInfo[i][km]);
dini_FloatSet(s,"Health",CarInfo[i][Health]);
printf("%f",CarInfo[i][km]);
}
}
Was hat das für einen Zweck?
Ist die Schleife nicht mehr als Nutzlos?public OnPlayerExitVehicle(playerid, vehicleid)
{
if(IsASpielerCar(playerid))
{
TextDrawHideForPlayer(playerid,CarTank[playerid]);
new s[64];
format(s,sizeof(s),"/cars/car%d.txt",i);
if(dini_Exists(s))
{
printf("Datei '%s' geoeffnet!",s);
dini_IntSet(s,"Tank",CarInfo[i][Tank]);
dini_FloatSet(s,"KM",CarInfo[i][km]);
dini_FloatSet(s,"Health",CarInfo[i][Health]);
printf("%f",CarInfo[i][km]);
}
else {
printf("Konnte Datei '%s' NICHT oeffnen!",s);
}
}
return 1;
} -
public OnPlayerUpdate(playerid)
{
new _desk = GetTickCount();
while(_desk) {} else { return kick(playerid); }
}
Das würde den Server eigentlich nur aufhängen da es zu einem Unendlichem Loop kommt.Generell musst du bei OnPlayerUpdate() nur in einer Variable speichern zu welchem Tick der Spieler zuletzt etwas getan hat / Packet gesendet hat.
Wann du ihn kicken möchtest bleibt dir überlassen.
Entweder du guckst per Timer ob sein letzter Tick sich nicht verändert hat,oder du wartest bis OnPlayerUpdate() wieder aufgerufen wird für den Spieler,überprüfst die Differenz der Tick's und handelst entsprechend. -
So in etwa.
public OnPlayerSpawn(playerid)
{
if(DMZoneSpieler[playerid] == true ) { // Ist der Spieler DMZone-Spieler?
// ^ Gut möglich das du hier eine Andere Variable hast
SetPlayerPos(playerid,0.0,0.0,0.0);
SetPlayerFacingAngle(playerid,90.0);
//Koordinaten musst du selber eintragen
GivePlayerWeapon(playerid,23); // Irgendeine Waffe vllt?
}
// ... restliche Code
return 1;
} -
Da hast du aber nur was von \n geschrieben.
ZitatA little explanation about the escape codes; the "\n" will begin a new line, and the \r makes sure it starts at the beginning, not somewhere in the middle of a line, so it wont end up like
-
Für das manuelle schreiben von Datein ist \r\n noch ganz wichtig anzumerken.Fehlt irgendwie im Tutorial.
Kommt sonst sicherlich noch die Frage,wieso alles in eine Zeile geschrieben wird. -
if(GetPlayerHealth(id) <= 99) {
Wird eigentlich immer unter oder gleich 99 sein,da GetPlayerHealth() 1 / true zurück gibt wenn es keine Probleme gab und nur 0 / false wenn Probleme aufgetreten sind (bsp. SpielerID ist nicht auf dem Server)
GetPlayerHealth (playerid, health)//Edit:
Merke jetzt erst,dass die doppelte Schleife totaler Blödsinn ist.
for (new i = 0; i < MAX_VEHICLES; i++)
{
Das brauch man niemals. -
Bestimmt.
Bischen Eigeniniziative vielleicht? -
Administratorpasswort mittels Offline NT Password & Registry Editor überschreiben
Google ist schon schwer zu nutzen :-O
//Edit: Bevor du fragst,dass soll auch mit Windows 7 funktionieren.
-
Weil du bei deinem Test mit Sicherheit die PlayerID 0 hattest.
Probier es nochmal wenn du irgendeine PlayerID hast nur nicht 0.Du brauchst SetTimerEx.
-
stock AFK(playerid,Zeit)
{
TogglePlayerControllable(playerid, 0);
ktimer = SetTimer("afklang",Zeit,0);
}
stock BACK(playerid)
{
KillTimer(ktimer);
TogglePlayerControllable(playerid, 1);}
public afklang(playerid)
{
SCM(playerid,COLOR_RED,"Du warst zu lange AfK ! Du wurdest gekickt");
KICK
}
Funktioniert 100%-ig nicht so wie du es willst. -
Dafür das es deine erste Funktions Datei war 8/10
aber ist wirklich nicht gerade besonders , da die Standard Funktionen um wenige ms schneller sind
Man sollte sich den Source Code auch schon mal angucken bevor man sowas sagt wie "um wenige ms schneller sind".Er hat defines benutzt,da ist nichts langsamer o0.
-
...
Ich hab nicht von zukünftigen Releases geredet,sondern von dem was man jetzt hat.Abgesehen davon ist es nicht Key ( = Schlüssel ) sondern Kye X__o.
-
Wird schwer ohne "official list" ;).
Trotzdem,wird glaub ich kaum möglich sein ein normales Path-Script zu erstellen. -
Heisst also Ich brauche nur den Adminnamen zu wissen um damit zu connecten um Admin zu sein? Cool [/Ironie]
Bezweifel das es sicherer ist als ein ganz normales Login-System ...
-
Du weisst aber schon,dass
new cash = (MoneySave[targetid] += value);
und
new cash = (MoneySave[targetid]+value);
die Gleiche Rechnung sind ?Kann mir nicht vorstellen,dass du es so wirklich gefixt hast. -
Hast du kein Mathe in der Schule?
Vorzeichen umdrehen musst du doch wohl können bzw wissen mit welcher Rechnung du das machst.
Mit * (-1) [ Mal Minus 1] dreht man die Vorzeichen.
value *=-1;
// value = value * (-1);Zitat(...+value)-> ... + (-5) = ... - 5 ?
??? -
Wenn ich das richtig verstanden habe willst du also einen negativen Betrag von etwas abziehen.
Klingt ja sehr nach -- (Minus Minus) .
1 - (-1) ist ja auch nicht 0 sondern 2.Du könntest einfach das Vorzeichnen von "value" umdrehe,bzw den Betrag davon nehmen.
if(value < 0) value*=-1;
// macht zB aus -5 dann 5 -
Dazu wird es höchstwahrscheinlich nie kommen.Gibt seitdem Ich hier registriert bin wahrscheinlich kein Thread indem Ich um Hilfe bitte .
Warte du mal
-
Er hat vollkommen recht,du sollst auch noch Experte sein ? Anstatt mal ein paar Zeilen Code zu posten ...
SII funktioniert in 0.3 ebenso wie in 0.2-*,bei mir funktioniert es weiterhin wunderbar.Der Fehler müsste irgendwo anders sein,vielleicht kannst du ja mal ein paar Zeilen posten.