Beiträge von mari0_DE
-
-
die ist knapp 0,9GB groß xD
-
GTA SA deinstallieren und dann neu installieren.(eine Kopie von gta3.img machen und dann die mods instalieren)
-
Zitat
@ walker008
easy_ini ist jetzt getestet und voll Einsatz bereit!!
und die 0.2 ist feritg (,erstmal finalversion) -
b_MoveObject(??
-
zeig mal showstats also das gesamte!
-
Vorwort:Ich habe mir mal etwas Überlegt mit dem man das normale Abspeichern von Daten in .ini oder sonst irgendwelchen Datentypen zu erleichtern.
Dabei ist etwas entstanden das sehr hilfreich ist und genauso schnell auf dem Server ist wie die Herkömmliche variante die zum Beispiel im GF verwendet wird.Die Funktionen:
- Funktionen bei 0.2:
native PwWrong(file[],Key[],&savepasswort[],passwort[]);//key = Key1
native ClosePw();
native ReadFilePw();
native ..
native WriteFile(file[]);
native StopWrite();
native ReadFile(file[]);
native StopRead();
native ..
native Save(Key[],params);//key = Key2
native SaveInt(Key[],initger);//key = Key1
native SaveFloat(Key[],Float);//key = Key1
native SaveString(Key[],string[]);//key = Key1
native ..
native LoadInt(Key[],&Int);//key = Key1
native LoadFloat(Key[],&Float);//key = Key1
native LoadString(Key[],&String[]);//key = Key1
file[] = Fileadresse die man Öffnen will zB: "user/USERNAME.ini"
Key1 = wie bei dini auch der Key zB: "Geld"
Key2 = wie bei dem Herkömmlichen GF Speichersystem zB: "Geld=%d\n" oder "Passwort=%s\n" oder "Spawnx=%.1f\n"
params[] = die variable die man einspeichern will.(aber immer mit der richtigen Key2 verwenden!!)
&savepasswort[] = die variable in der man das Userpasswort speichern will.
passwort[] = die variable die der User eingegeben hat um sich Einzuloggen.
Anwendung Beispiele:- Beispiel Für OnPlayerLogin(playerid,password[]):
Spoiler anzeigen
public OnPlayerLogin(playerid,passwort[])
{
new file[60];
format(file,60,"23.ini");
PwWrong(file,"PW",PlayerInfo[playerid][pPasswort],passwort);
{
Kick(playerid);
return 1;
}
ClosePw();
ReadFile(file);
{
key = ini_GetKey(Data);//<------Wichtig!! (bei 0.3 KKKEEEYYY = ini_GetKey(DDDAAATTTAAA);)
LoadString("PW",PlayerInfo[playerid][pPasswort]);
LoadFloat("Spawnx",PlayerInfo[playerid][pSpawnx]);
LoadInt("Level",PlayerInfo[playerid][pLevel]);
}
StopRead();
return 1;
}
//zweite art:
public OnPlayerLogin(playerid,passwort[])
{
new file[60];
format(file,60,"23.ini");
PwWrong(file,"PW",PlayerInfo[playerid][pPasswort],passwort);
{
Kick(playerid);
return 1;
}
WriteFilePw();//<-------Wichtig
{
key = ini_GetKey(Data);//<------Wichtig!! (bei 0.3 KKKEEEYYY = ini_GetKey(DDDAAATTTAAA);)
LoadString("PW",PlayerInfo[playerid][pPasswort]);
LoadFloat("Spawnx",PlayerInfo[playerid][pSpawnx]);
LoadInt("Level",PlayerInfo[playerid][pLevel]);
}
StopRead();
return 1;
}
-
Beispiel Für OnPlayerRegister(playerid,password[])oder auch PlayerUpdate(playerid):
Spoiler anzeigen
public PlayerUpdate(playerid)
{
new file[60];
format(file,60,"23.ini");
WriteFile(file);
{
SaveString("PW",PlayerInfo[playerid][pPasswort]);
SaveFloat("Spawnx",PlayerInfo[playerid][pSpawnx]);
SaveInt("Level",PlayerInfo[playerid][pLevel]);
// oder:
Save("PW=%s\n",PlayerInfo[playerid][pPasswort]);
Save("Spawnx=%.1f\n",PlayerInfo[playerid][pSpawnx]);
Save("Level=%d",PlayerInfo[playerid][pLevel]);
//oder auch mixen ist egal
}
StopWrite();
return 1;
}
Bitte beachtet das man nicht OnPlayerUpdate benutzt um Acc's zu Speichern!!
Hier ein Post dazu: Godfather - onplayerupdate - massiv Performance steigern! unbedingt LESEN !
easy_ini hat folgende vorteile:- easy_ini ist genauso schnell in der Ausführung wie das herkömmliche(GF) Speichern in ini
- esay_ini ist einfach und schnell Einsetzbar.
- esay_ini ist vielseitig nutzbar.
easy_ini hat folgende nachteile: man hat die gleichen nachteile wie bei einem herkömlichen Speicher system(bei GF)- Man muss immer alle gleichzeitig einspeichern
Changelog:
- 0.1 zu 0.2:
Spoiler anzeigen PwWrong(file[],Key[],&savepwasswort[],passwort[];
ClosePw();
WriteFilePw();Spoiler anzeigen WriteFile(file);
StopWrite();
Download:
0.2:
http://pastebin.com/nhz8JXke
0.3 beta:
Fragen Anregungen?? bitte per PN an mich.
- Funktionen bei 0.2:
-
Das Hier:
if(GetPlayerMoney(playerid) < CarDealershipInfo[d][cdVehicleCost][v])
{
SendClientMessage(playerid, COLOR_GRAD1, "ERROR: You don't have enough money to buy this.");
RemovePlayerFromVehicle(playerid);
return 1;
}Mit:
if(PlayerMoney[playerid]< CarDealershipInfo[d][cdVehicleCost][v])//Preis= das was du ihm abziehn willst
{
SendClientMessage(playerid, COLOR_GRAD1, "ERROR: You don't have enough money to buy this.");
RemovePlayerFromVehicle(playerid);
return 1;
}Austauschen
Und das:
GivePlayerMoney(playerid, -CarDealershipInfo[d][cdVehicleCost][v]);MIt:
GetsMoney[playerid] = 1;
PlayerMoney[playerid] -= CarDealershipInfo[d][cdVehicleCost][v];//Preis= das was du ihm abziehn willstAlso alles zusammen:
else if(dialogid == DIALOG_CDBUY)
{
new vehicleid = GetPlayerVehicleID(playerid);
new v = GetCarDealershipVehicleId(vehicleid);
new d = GetCarDealershipId(vehicleid);
if(response)
{
if(PlayerMoney[playerid]< CarDealershipInfo[d][cdVehicleCost][v])//Preis= das was du ihm abziehn willst
{
SendClientMessage(playerid, COLOR_GRAD1, "ERROR: You don't have enough money to buy this.");
RemovePlayerFromVehicle(playerid);
return 1;
}
new playervehicleid = GetPlayerFreeVehicleId(playerid);
if(playervehicleid == -1) return SendClientMessage(playerid, COLOR_GREY, "ERROR: You can't have more cars.");
new randcolor1 = Random(0, 126);
new randcolor2 = Random(0, 126);
new car = CreatePlayerVehicle(playerid, playervehicleid, CarDealershipInfo[d][cdVehicleModel][v], CarDealershipInfo[d][cdVehicleSpawn][0], CarDealershipInfo[d][cdVehicleSpawn][1], CarDealershipInfo[d][cdVehicleSpawn][2], CarDealershipInfo[d][cdVehicleSpawn][3], randcolor1, randcolor2);
if(car == INVALID_PLAYER_VEHICLE_ID)
{
SendClientMessage(playerid, COLOR_GREY, "ERROR: Something went wrong and the car didn't get created.");
}
else
{
format(string, sizeof(string), " Thank you for buying at %s.", CarDealershipInfo[d][cdMessage]);
SendClientMessage(playerid, COLOR_GRAD1, string);
GetsMoney[playerid] = 1;
PlayerMoney[playerid] -= CarDealershipInfo[d][cdVehicleCost][v];//Preis= das was du ihm abziehn willst
CarDealershipInfo[d][cdTill] += ( CarDealershipInfo[d][cdVehicleCost][v] * 40 ) / ( 100 );
PutPlayerInVehicle(playerid, car, 0);
SavecDealership(editingcd[playerid]);
}
}
else
{
RemovePlayerFromVehicle(playerid);
return 1;
}
}Gute Nacht zusammen xD
Edit jetzt müsste es gehen!!!!!!!!!!!!!!!!!!
und jetzt gehe ich -
if(PlayerMoney[playerid]<Preis)//Preis= das was du ihm abziehn willst
{
SendClientMessage(playerid,color,"du hast nicht genug Geld"
}
else
{
GetsMoney[playerid] = 1;
PlayerMoney[playerid] -= Preis;//Preis= das was du ihm abziehn willst
}das musst du in dein quell text einbauen da wo du GivePlayerMoney(playerid, -dein preis halt);
Zitatne wir brauchen dein OnPlayerDIalog ode rso ka bin müde du weis was ich mein??
-
GetsMoney[playerid] = 1; PlayerMoney[playerid] = PlayerMoney[playerid] -= costlevel;
damit zeihst du dein Geld ab
mit
GetsMoney[playerid] = 1 sagt man dem script ob der spieler jetzt geld bekommt/abgezogen bekommt
mit PlayerMoney[playerid] -= Preis kannst du dem spieler dann Preis abzeihen
mit PlayerMoney[playerid] += guthaben kannst du dem spieler dann guthaben Geben
if(PlayerMoney[playerid]<Preis)//Preis= das was du ihm abziehn willst
{
SendClientMessage(playerid,color,"du hast nicht genug Geld"
}
else
{
GetsMoney[playerid] = 1;
PlayerMoney[playerid] -= Preis;//Preis= das was du ihm abziehn willst
}wenn du ihm Geld geben wilst:
GetsMoney[playerid] = 1;
PlayerMoney[playerid] += Geld;//Geld = das was du ihm Geben willstne wir brauchen dein OnPlayerDIalog ode rso ka bin müde du weis was ich mein??
-
er hat anti money hack o.0
da muss das so Sein!
das steht aber auch in der Überschrift !! -
o hätte ich jetzt nicht gedacht
-
GetsMoney[playerid] = 1; PlayerMoney[playerid] = PlayerMoney[playerid] -= costlevel;
damit zeihst du dein Geld ab
mit
GetsMoney[playerid] = 1 sagt man dem script ob der spieler jetzt geld bekommt/abgezogen bekommt
mit PlayerMoney[playerid] -= Preis kannst du dem spieler dann Preis abzeihen
mit PlayerMoney[playerid] += guthaben kannst du dem spieler dann guthaben Geben -
thx für die schöne erklärung PWND' # MESUT
und | - | auke jo hast recht die Abfragen können nie schaden.. !!
-
Wenn das nicht geht, änder mal den Namen, oder sowas.
das hört sich gut an das mit #if nicht weil dan ja errors oder warnings kommen müssten
-
xD lol dann hab ich auch keine Ahnung mehr!
-
wenn du mir sagst was :
#pragma library Farben
bringen soll vil. -
jo das hört sich logisch an
-
ohne code geht nix
post mal ein bischen code von einem cmd wo das geld auch abgezogen wird -
ist bei mir auch so