Um es besser verständlich zu machen die Hauptspeicherung soll auf MySQL bleiben.
ich benötige nur die dateispeicherung für den Bot damit er arbeiten kann..
und ich mittels !Gender Male - Zb alle Männlichen spieler angezeigt bekommen kann..
Damals in Samp hatte ich das via $readini und co gemacht über Mirc.
Hier mal ein snippet wie die Auslesung mittels msl funktioniert hierbei wird $read und $readini sowie ifs und while schleifen genutzt..
Alles natürlich selbst geschrieben und das seit xmas - 2009
alias Players-v2 {
;msg # %Head1 $+ # $+ %Head2 11,1S10ind %Head2 $findfile(c:\GTA\scriptfiles\Accounts\, *.ini, 0) %Head1 11N11icks Im Spiel
msg #GTA-SA-MP 1,14[0\7!0\1]0 Bereits 1,7[00 $+ $findfile(c:\gta\scriptfiles\Accounts\, *.ini, 0) $+ 1,7]0,14 Registrierte User im Spiel 1[0\7!0\1]
msg #GTA-Sa-MP 1,14[0\7!0\1]0 Nickname 1,7[0-1,7]0,14 - Geschlecht - Alter 1[0\7!0\1]
if ($findfile(c:\GTA\scriptfiles\Accounts\, *.ini, 0) == 0) {
msg # %Head1 Es sind keine Nicks in S4Y-Roleplay Angemeldet %Head3
}
if ($findfile(c:\gta\scriptfiles\Accounts\, *.ini, 0) > 0 ) {
set %nicks $findfile(c:\gta\scriptfiles\Accounts\, *.ini, 0)
set %og c:\gta\scriptfiles\Accounts\
:next
Set %Head1 1,7[0\\1]0,14
Set %Head2 1,7[0-1]0,14
Set %Head2.0 0,7:0,14
Set %Head3 1,7[0\\1]
set %N $remove($findfile(c:\gta\scriptfiles\Accounts\, *.ini, %nicks),.ini,%og)
$Roleplay-Players
msg #GTA-SA-MP %head1 $admins %N %head1 $ges %head1 $Age %head3
dec %nicks
if %nicks == 0 goto done
else goto next
:done
msg #GTA-SA-MP 1,14[0\7!0\1] [4***1] 0Admin's 7, 1[11**1]0 Mod's7, 1[9*1]0 TestMod's7, 1[6~B1] 0Npc's 1[0\7!0\1]
msg #GTA-SA-MP 1,14[0\7!0\1]--------1,7[0\\1]1,14--1,7[0\\1]1,14--1,7[0\\1]1,14--------[0\7!0\1]
}
}
alias Age {
set %aga $read(%GTASAMP-Hauptpfad $+ Scriptfiles\Benutzer\ $+ %N $+ .ini, w, Age*)
if (Age=0 isin %aga) { return Unbekannt }
if (Age= isin %aga) { set %aga.a $remove(%aga,Age=) | return %aga.a }
}
alias admins {
set %alevel $remove($read(%GTASAMP-Benutzer-Acc-Pfad $+ %N $+ .ini, w, AdminLevel*),AdminLevel=)
if (%alevel > 1333) { return 1,14[4***1]0
}
set %alevel $remove($read(%GTASAMP-Benutzer-Acc-Pfad $+ %N $+ .ini, w, Supporter*),Supporter=)
if (%alevel > 1333) { return 1,14[8**1]0
}
set %alevel $remove($read(%GTASAMP-Benutzer-Acc-Pfad $+ %N $+ .ini, w, testmod*),Testmod=)
if (%alevel > 1333) { return 1,14[7*1]0
}
if (carla isin %N) || (Nutte isin %N) || (Nutte2 isin %N) || (Nutte3 isin %N) || (sandra isin %N) || (angelo isin %N) || (angela isin %N) || (catrina isin %N) || (marta isin %N) || (tim isin %N) {
return 1,14[13~B1]0
}
if (test0000 isin %N) || (test0011 isin %N) || (test0022 isin %N) {
return 1,14[13~B1]0
}
}
Alles anzeigen
Alles andere wurde auch über Aliase Gelöst und Jeweils über $read ode $readini ausgelesen.
$readini benötigt sogenannte sectionen um die werte auszulesen und kann diese dann wiedergeben
$read kann mit parametern aus Zeilen .
Beispiel $read
In der Spielerdatei Syko.ini
Stehen folgende werte..
Name=Syko
Job=Busfahre
Geld=200
Alter=29
Geschlecht=Mann
Dann erhalte $read(Syko.ini, w, Name*) folgedes Name=Syko um das dann im Script besser darzustellen benutze ich noch das $remove davor also sprich $remove($read(Syko.ini, w, Name*), Name=) und habe das in einer variable %name gespeichert Dann würde dann vom Bot als ausgabe Syko erhalten. wenn ich msg $chan Name %name verwende..
Beispiel für $readini
Wenn die Ini nun in Sectionen eingeteilt ist erleichtert es den Bot die daten Auszulesen.
[Accountinfo]
Name=Nickla
IngameName=Syko
Geld=200
Alter=23
Beruf=Taxifahrer
Hiermit kann ich also mittels $readini arbeiten ohne ein $remove zu verwenden dies verkürzt die ausgabe
z.b $readini(Account.ini, Accountinfo,Name) würde ich dies in dieser form verwenden bei /msg $chan $readini(Account.ini, Accountinfo,Name) würde ich sofort Nickla erhalten
denn $readini sucht in der Ini datei nach der Section AccountInfo und gibt dann den wert wieder der Bei Name steht..
Deswegen würde ich diese Funktionen gerne weiter verwenden auch für FiveM!