Schau mal unter GTA San Andreas -> Models -> txd Ordner
Dort sind die alle drin!
Grüße,
TheBester
Schau mal unter GTA San Andreas -> Models -> txd Ordner
Dort sind die alle drin!
Grüße,
TheBester
Habe ihn geholfen
Ich denke dann mal Close
Grüße,
TheBester
Schreibe zukünftlich deine Codes / Zeilen bitte im !
Dann ist das übersichtlicher und man sieht es besser.
Damit du den /unlock Befehl nicht mehr benötigst, musst du mit Variablen arbeiten!
Grüße,
TheBester
Also grundsätzlich, wenn du ein Code / Zeilen postest, dann bitte nur im
Ich sehe da auf dem ersten Blick kein Klammerfehler, aber welche Errors / Warnings bekommst du denn?
Zeig die mal bitte.
Muss ja nicht immer heißen, dass es gleich ein Klammerfehler ist!
Grüße,
TheBester
Ja testen will ich es wohl, aber wenn es klappt, will ich das auch wohl so lassen. Sollten dann später Probleme damit aufkommen, werde ich das sofort wieder rückgängig machen
Also, weiß nun einer, außer OnPlayerUpdate, da ich dies gerne meiden möchte
Hab es nun so:
public UpdateTacho() //Tacho Public
{
for(new i = 0;i<MAX_PLAYERS;i++) //Forschleife
{
if(IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER && !IsPlayerNPC(i)) //Abfrgae ob Spieler in Car sitzt
{
new Float:Strecke,Float:Geschwindigkeit,Float:health;//Neue Variablen
GetVehicleHealth(GetPlayerVehicleID(i),health);
GetVehiclePos(GetPlayerVehicleID(i),X1[i],Y1[i],Z1[i]); //Geben dem Auto die erste Position
Strecke = floatsqroot(floatpower(floatabs(floatsub(X1[i],X2[i])),2)+floatpower(floatabs(floatsub(Y1[i],Y2[i])),2)+floatpower(floatabs(floatsub(Z1[i],Z2[i])),2));//Rechnen die Geschwindigkeit aus
Geschwindigkeit = (Strecke / (TACHOTIMER /100)) * 3.6; //Teilen das durch unseren TACHOTIMER define. Danach durch 1000 und dann mal 3,6. Damit es in Killometer ausgegeben wird.
new string[750]; //definen unseren String
format(string,750," ~b~%s~n~~r~Geschw. ~w~%d km/h~n~~r~Tank: ~w~%i Liter~n~~r~Zustand: ~w~%.2f%",Fahrzeugname[GetVehicleModel(GetPlayerVehicleID(i))-400],floatround(Geschwindigkeit),Tank[GetPlayerVehicleID(i)],health); //Geben unseren TextDraw aus
TextDrawSetString(Tacho[i],string); //Updaten unseren Tacho
GetVehiclePos(GetPlayerVehicleID(i),X2[i],Y2[i],Z2[i]); //Geben dem Auto die zweite Position
TextDrawShowForPlayer(i,Tacho[i]); //Zeigen unserem Player den Tacho
}
else //Wenn er kein Fahrer ist oder in keinem Auto sitzt oder er NPC ist, passiert folgendes
{
TextDrawHideForPlayer(i,Tacho[i]); //TextDraw wird nicht angezeigt
}
}
return 1;
}
#define TACHOTIMER 100
timer = SetTimer("UpdateTacho",100,true);
Aber er zeigt nur bis 10km/h an
Ja, das habe ich schon gemacht, aber dann zeigt der mir nur bis 10 km/h an
Guten Tag,
Kann man das Tacho auch flüssig laufen lassen?
Ich weiß, dass es viel an Ressourcen zieht, aber ich will es mal testen.
Grüße,
TheBester
Ich habe es nun so:
stock SpielerSpeichern(playerid)
{
new Spielerdatei[500];
format(Spielerdatei,sizeof(Spielerdatei),"/User/%s.txt",SpielerName(playerid));
dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
GetPlayerMoney(playerid),GetPVarInt(playerid,"Geld");
dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
return 1;
}
stock SpielerLaden(playerid)
{
new Spielerdatei[64];
format(Spielerdatei,sizeof(Spielerdatei),"/User/%s.txt",SpielerName(playerid));
SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
return 1;
}
Wenn ich dann einen Restart aus der Konsole mache, steht mein Adminlevel bei 0
Grüße,
TheBester
Guten Tag,
Ich logge mich mit dem Adminrang 6 ein, und wenn ich offline gehe, steht im Scriptfiles Ordner alles auf 0. Also Adminrang = 0, Geschlecht = 0, usw.
Das Passwort wird aber nicht resettet.
stock SpielerSpeichern(playerid)
{
new Spielerdatei[128],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Test/%s.txt",name);
dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
dini_IntSet(Spielerdatei,"Wanteds",GetPlayerWantedLevel(playerid));
dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
dini_IntSet(Spielerdatei,"Herkunft",GetPVarInt(playerid,"Herkunft"));
dini_IntSet(Spielerdatei,"Geschlecht",GetPVarInt(playerid,"Geschlecht"));
dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
dini_IntSet(Spielerdatei,"Skin",GetPlayerSkin(playerid));
dini_IntSet(Spielerdatei,"tban",GetPVarInt(playerid,"tban"));
return 1;
}
stock SpielerLaden(playerid)
{
new Spielerdatei[128],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Test/%s.txt",name);
SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
SetPlayerWantedLevel(playerid,dini_Int(Spielerdatei,"Wanteds"));
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
SetPVarInt(playerid,"Herkunft",dini_Int(Spielerdatei,"Herkunft"));
SetPVarInt(playerid,"Geschlecht",dini_Int(Spielerdatei,"Geschlecht"));
SetPlayerSkin(playerid,dini_Int(Spielerdatei,"Skin"));
SetPVarInt(playerid,"tban",dini_Int(Spielerdatei,"tban"));
return 1;
}
Ich bitte um Hilfe.
Grüße,
TheBester
Ich glaube, auch wenn er das noch nicht kann, brauchen wir ihn den Befehl nicht scripten.
Wenn er Probleme mit dem Scripten haben sollte, dann soll er es entweder lassen, oder üben.
Wenn er dann immer noch Schwierigkeiten haben sollte, kann er ja immer noch hier nach fragen!
Grüße,
TheBester
Du musst unter OnPlayerRequestClass das einfügen:
und
Grüße,
TheBester
Jap, ich brauche keine Hilfe mehr, das habe ich gerade auch selber bemerkt
Grüße,
TheBester
Das klappt immernoch nicht, kann wenn einer dazu bereit ist, mir einen guten Tban Befehl hier schreiben? Wäre echt nett, oder mir mit dem Befehl weiter helfen
Wo, beim Connect, oder stock?
Gutne Tag,
Ich habe gerade in der SuFu ein Tban Tutorial gefunden, aber der klappt nicht:
stock Tban(playerid,const string[],dauer,bannerid)
{
new timestamp,str[128],pfad[128];
timestamp = gettime();
new sekunden = dauer * 60;
timestamp += sekunden;
new name[MAX_PLAYER_NAME],bannername[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
GetPlayerName(bannerid,bannername,sizeof(bannername));
format(str,sizeof(str),"AdmMsg: %s wurde von %s für %d Minuten gebannt",name,bannername,dauer);
SendClientMessageToAll(ROT,str);
format(str,sizeof(str),"Grund: %s",string);
SendClientMessageToAll(ROT,str);
Kick(playerid);
dini_IntSet(pfad,"tbans/%s.txt",timestamp);
return 1;
}
dcmd_tban(playerid,params[])
{
new pID,grund[64],dauer;
if(sscanf(params, "usi", pID, grund,dauer))return SendClientMessage(playerid,GRAU,"VERWENDE: /tban [ID] [Grund] [Dauer]");
Tban(pID,grund,dauer,playerid);
return 1;
}
public OnPlayerConnect(playerid)
{
SpielerLaden(playerid);
new string[300],string1[300],name[MAX_PLAYER_NAME],Spielerdatei[128],pfad[128];
GetPlayerName(playerid,name,sizeof(name));
new timestamp = gettime();
new bisgebannt = dini_Int(pfad,"tbans");
if(timestamp < bisgebannt) //wenn der gerade genommene Timestamp kleiner als bisgebannt ist, liegt das entbannungsdatum in der Zukunft.
{
new differenz = bisgebannt - timestamp; //wir subtrahieren bisgebannt von timestamp, wir erhalten also die Zeit in Sekunden wie lange der Spieler noch gebannt ist.
new minuten = differenz / 60; //wir machen aus den Sekunden Minuten....
new str[64]; //neuer String wird deklariert....
format(str,sizeof(str),"Du bist noch %i Minuten gebannt!",minuten); //So bekommt der Spieler sogar noch angezeigt, wie langer er noch genau gebannt ist.
SendClientMessage(playerid,ROT,str); //String wird dem Spieler ausgegeben
Kick(playerid);//Kick erfolgt
}
format(Spielerdatei,sizeof(Spielerdatei),"/Test/%s.txt",name);
if(dini_Exists(Spielerdatei))
{
format(string1,sizeof(string1),"{FAFAFA} Herzlich Willkommen zurück!\n Dein Benutzername: %s\n\nLogge dich nun mit deinen Daten(Passwort) ein!",name);
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"{DF7401}[SoA]: {FAFAFA}Login",string1,"Login","Abbrechen");
}
else
{
format(string,sizeof(string),"{FAFAFA} Herzlich Willkommen, Neuling %s!\n\n Damit du hier in der nächsten Zeit weiter hin spielen kannst,\n musst du dir als aller erstes ein Account anlegen!",name);
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"{DF7401}[SoA]: {FAFAFA}Registrierung",string,"Register","Abbrechen");
}
return 1;
}
Es wird nichts in dem Ordner "tbans" erstellt, und ich kann mich nach dem tban sofort wieder einloggen!
Bitte helft mir.
Grüße,
TheBester
Du müsstest bei dein Timeban auch bei OnPlayerConnect abfragen, ob der noch ein Timeban hat, wenn ja => Kicken, wenn nein => connecten!
Grüße,
TheBester
Ich habe Windows 8 selber seit 2012, und ich komme damit super zurecht.
Grüße,
TheBester
Tja, dann "pusht" es man einmal nach einen Tag, und schreibt da nicht rein: Echt Schade das hier nicht geholfen wird!
Grüße,
TheBester
Du wartest gerade mal erst seit gestern Abend, 20:00 Uhr! Wenn du keine Geduld hast, dann tut es mir auch Leid.
Grüße,
TheBester