Ok ich danke dir klappt nun alles richtig.
(Closed)
Ok ich danke dir klappt nun alles richtig.
(Closed)
Gut noch eine frage:
ist es ressourcend fressend wenn ich die werte beim arbeiten speichere das silo volumen + 100 geht in der ini und beim gmx?
(E) Error beheben danke goldkiller
So ich habe es nun erstellt:
public SaveSilo()
{
format(string,sizeof(string),"/Daten/Silo.ini");
if(fexist(string))
{
dini_IntSet(string,"Volumen",SiloInfo[Silo]);
}
Delete3DTextLabel(Siloa[0]);
Delete3DTextLabel(Siloa[1]);
return 1;
}
public LoadSilo()
{
format(string,sizeof(string),"/Daten/Silo.ini");
if(!fexist(string))
{
dini_Create(string);
dini_Set(string,"Volumen",SiloInfo[Silo]);
return 1;
}
if(fexist(string))
{
SiloInfo[Silo] = dini_Int(string,"Volumen");
format(string,sizeof(string),"Silo: %d",SiloInfo[Silo]);
Siloa[0] = Create3DTextLabel(string,Gelb,-53.0389,112.1127,3.1172,20.0,0,1);
Siloa[1] = Create3DTextLabel(string,Gelb,-63.6561,115.7869,3.1172,20.0,0,1);
}
return 1;
}
public UpdaSilo()
{
format(string,sizeof(string),"Silo: %d",SiloInfo[Silo]);
Update3DTextLabelText(SiloInfo[Silo],Gelb,string);
return 1;
}
enum Silo
{
Volumen
};
new SiloInfo[Silo];
new Text3D:Siloa[2];
bei Serverstart: LoadSilo();
bei Gmx: SaveSilo();
beim Updaten: SiloInfo[Silo] += 100;
UpdaSilo();
doch bekomme errors:
:\Users\Qini\Desktop\Server\gamemodes\LYGL.pwn(739) : error 032: array index out of bounds (variable "SiloInfo")
C:\Users\Qini\Desktop\Server\gamemodes\LYGL.pwn(976) : error 032: array index out of bounds (variable "SiloInfo")
C:\Users\Qini\Desktop\Server\gamemodes\LYGL.pwn(989) : error 032: array index out of bounds (variable "SiloInfo")
C:\Users\Qini\Desktop\Server\gamemodes\LYGL.pwn(994) : error 032: array index out of bounds (variable "SiloInfo")
C:\Users\Qini\Desktop\Server\gamemodes\LYGL.pwn(995) : error 032: array index out of bounds (variable "SiloInfo")
C:\Users\Qini\Desktop\Server\gamemodes\LYGL.pwn(1004) : error 032: array index out of bounds (variable "SiloInfo")
C:\Users\Qini\Desktop\Server\gamemodes\LYGL.pwn(1005) : error 032: array index out of bounds (variable "SiloInfo")
Nein ich meinte wie ich es mache das er ein txt dokument erstellt dort reinschreibt
Füllvolumen=0 so und beim serverstart das lädt und wenn jemand das füll volumen z.b auf 100 stellt
steht in dem text dokument 100 also soll er beim laden 100 laden und es somit in ein text dokument schreiben
und wenn in der zeit was neues dazu kommt soll er eben z.b 100 auf 200 machen und das 3d label updaten das die
neuen werte drinne stehen.
(E) Ich versuche es nachem essen mal mit dini vlt klappt es ja
wie mache ich das denn mit dem updaten des 3d labels wenn was neues dazu kommt?
Ich wollte was machen undzwar ich brauche ein text dokument peer log wie nen kick log z.b dann
soll er dort reinschreiben Füllvolumen=die werte dann soll er die werte bei serverstart laden und in ein 3d text schreiben
kann mir jemand sagen wie das so funkioniert mit dem laden aus der datei?
(E) Und wie ich da dann werte reinschreibe wenn neues füllvolumen zu kommt?
(E) Gmx zu Serverstart
(E) Was umformieliert
Ok Nun Bekomme ich ein Warning in der Ini include:
C:\Users\Qini\Desktop\Pawno\include\dini.inc(239) : warning 219: local variable "string" shadows a variable at a preceding level
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Warning.
wie behebe ich den hier die zeilen:
So ich habe jetz mein Login register system auf dini umgebaut da mein anderes probleme mit dem passwort hatte nun
aber bekomme ich ein paar warnings in diese zeilen:
Login
PlayerInfo[playerid][Level] = dini_IntSet(string,"Level");
PlayerInfo[playerid][Geld] = dini_IntSet(string,"Geld");
PlayerInfo[playerid][Heal] = dini_Float(string,"Heal");
PlayerInfo[playerid][Armor] = dini_Float(string,"Armor");
PlayerInfo[playerid][XKoord] = dini_Float(string,"XKoord");
PlayerInfo[playerid][YKoord] = dini_Float(string,"YKoord");
PlayerInfo[playerid][ZKoord] = dini_Float(string,"ZKoord");
PlayerInfo[playerid][AKoord] = dini_Float(string,"AKoord");
PlayerInfo[playerid][Neu] = dini_IntSet(string,"Neu");
PlayerInfo[playerid][Skin] = dini_IntSet(string,"Skin");
PlayerInfo[playerid][Inte] = dini_IntSet(string,"Inte");
PlayerInfo[playerid][Virt] = dini_IntSet(string,"Virt");
PlayerInfo[playerid][Bmkey] = dini_IntSet(string,"Bmkey");
PlayerInfo[playerid][Bhkey] = dini_IntSet(string,"Bhkey");
PlayerInfo[playerid][Brief] = dini_IntSet(string,"Brief");
PlayerInfo[playerid][Keys] = dini_IntSet(string,"Keys");
Update
dini_IntSet(string,"Level",PlayerInfo[playerid][Level]);
dini_IntSet(string,"Geld",PlayerInfo[playerid][Geld]);
dini_Float(string,"Heal",PlayerInfo[playerid][Heal]);
dini_Float(string,"Armor",PlayerInfo[playerid][Armor]);
dini_Float(string,"XKoord",PlayerInfo[playerid][XKoord]);
dini_Float(string,"YKoord",PlayerInfo[playerid][YKoord]);
dini_Float(string,"ZKoord",PlayerInfo[playerid][ZKoord]);
dini_Float(string,"AKoord",PlayerInfo[playerid][AKoord]);
dini_IntSet(string,"Neu",PlayerInfo[playerid][Neu]);
dini_IntSet(string,"Skin",PlayerInfo[playerid][Skin]);
dini_IntSet(string,"Inte",PlayerInfo[playerid][Inte]);
dini_IntSet(string,"Virt",PlayerInfo[playerid][Virt]);
dini_IntSet(string,"Bmkey",PlayerInfo[playerid][Bmkey]);
dini_IntSet(string,"Bhkey",PlayerInfo[playerid][Bhkey]);
dini_IntSet(string,"Brief",PlayerInfo[playerid][Brief]);
dini_IntSet(string,"Keys",PlayerInfo[playerid][Keys]);
(E) ZEilen
Leute wisst ihr was ich mich frage wieso es im Godfather geht und bei mir nicht
meins sieht genau so aus hat den keiner mehr ne ahnung was ich machen soll jede
idee ist hilfreich soll ich da drauf verzichten und nen anderes nehmen oder wie ?
Genau so habe ich es ich frage peer virabel ab ob er eingeloggt ist ich update den spieler nur
alle 10 minuten und beim disconnecten und disconnecten tuht er nur beim exit oder Gmx
nun Maxx was soll ich tuhen meine sachen stehen ja alle eine seite vorher?
(E)
public OnGameModeExit()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && Eingeloggt[i])
{
Delen();
SpielerUpdate(i);
Eingeloggt[i] = 0;
}
}
return 1;
}
(E) Zeilen Gerückt
Also so?
(E) Hat nicht viel gebracht
siehe zeile oben das passiert eben da löscht er immer diesen beschissene passwort naja
jemand noch ne idee wenn nicht sagt mir was ich tuhen Soll ;(;(
Bitte Helft mir >:
public OnPlayerDisconnect(playerid, reason)
{
SpielerUpdate(playerid);
TextDrawHideForPlayer(playerid,Uhr);
GetPlayerName(playerid,name,sizeof(name));
switch(reason)
{
case 0: format(string,sizeof(string),"%s hat den Server verlassen, (Timeout)",name);
case 1: format(string,sizeof(string),"%s hat den Server verlassen, (Ausgeloggt)",name);
case 2: format(string,sizeof(string),"%s hat den Server verlassen, (Kick/Ban)",name);
}
SendClientMessageToAll(Grau,string);
Eingeloggt[playerid] = 0;
return 1;
}
(E)
Wenn ihr einfach nix mehr wisst dann sagt mir wenigstens was ich tuhen soll das es geht bzw
was ich machen soll weil ich habe keine lust aufzugeben wegen ein so nen kleinen sch.. bug..
So ich habe es mir heute nochmal angeschaut und immer noch das gleiche problem
es ist ja das gf login regi system und ich habe mein string ganz oben definiert größe 128 und sie haben bei den publics
einen neuen string definiert größe 32 ist das nen problem oder kann es daran liegen weil sonst ist alles gleich
Für Profis einfach aber es ist ja für anfänger doch ein problem gibt es mann kann auf die tram springen und somit fahren
daswegen würde ein ticket system nicht viel helfen aber für anfänger top 9/10 punkte.
Ich habe mir nun eine eigene funkion erstellt undzwar ein public das, das updatet alle 10 minuten und beim disconnecten doch
immer wenn ich einen gmx mache springt mein Passwort auf Passwort= ich weiß einfach nicht mehr weiter bzw wieso es ist ja
so ne art godfather register system nicht copiert sondern nach gebaut und verfeinert doch wieso geht es nicht LoH hat das problem
z.b auch nicht?!
public Register(playerid,password[])
{
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),"/Accounts/%s.ini",name);
new File: hFile = fopen(string, io_write);
if (hFile)
{
strmid(PlayerInfo[playerid][Passwort], password, 0, strlen(password), 255);
new var[32];
format(var, 32, "Passwort=%s\n", PlayerInfo[playerid][Passwort]);fwrite(hFile, var);
format(var, 32, "Level=%d\n", PlayerInfo[playerid][Level]);fwrite(hFile, var);
format(var, 32, "Geld=%d\n", PlayerInfo[playerid][Geld]);fwrite(hFile, var);
format(var, 32, "Heal=%.1f\n", PlayerInfo[playerid][Heal]);fwrite(hFile, var);
format(var, 32, "Armor=%.1f\n", PlayerInfo[playerid][Armor]);fwrite(hFile, var);
format(var, 32, "XKoord =%.1f\n", PlayerInfo[playerid][XKoord]);fwrite(hFile, var);
format(var, 32, "YKoord=%.1f\n", PlayerInfo[playerid][YKoord]);fwrite(hFile, var);
format(var, 32, "ZKoord=%.1f\n", PlayerInfo[playerid][ZKoord]);fwrite(hFile, var);
format(var, 32, "AKoord=%.1f\n", PlayerInfo[playerid][AKoord]);fwrite(hFile, var);
format(var, 32, "Neu=%d\n", PlayerInfo[playerid][Neu]);fwrite(hFile, var);
format(var, 32, "Skin=%d\n", PlayerInfo[playerid][Skin]);fwrite(hFile, var);
format(var, 32, "Inte=%d\n", PlayerInfo[playerid][Inte]);fwrite(hFile, var);
format(var, 32, "Virt=%d\n", PlayerInfo[playerid][Virt]);fwrite(hFile, var);
format(var, 32, "Bmkey=%d\n", PlayerInfo[playerid][Bmkey]);fwrite(hFile, var);
format(var, 32, "Bhkey=%d\n", PlayerInfo[playerid][Bhkey]);fwrite(hFile, var);
format(var, 32, "Brief=%d\n", PlayerInfo[playerid][Brief]);fwrite(hFile, var);
format(var, 32, "Keys=%d\n", PlayerInfo[playerid][Keys]);fwrite(hFile, var);
fclose(hFile);
}
return 1;
}
public Login(playerid,password[])
{
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),"/Accounts/%s.ini",name);
new File: UserFile = fopen(string, io_read);
if (UserFile)
{
new PassData[256],keytmp[256],valtmp[256];
fread( UserFile,PassData,sizeof(PassData));
keytmp = ini_GetKey(PassData);
if( strcmp(keytmp,"Key",true )== 0)
{
valtmp = ini_GetValue(PassData);
strmid(PlayerInfo[playerid][Passwort],valtmp,0,strlen(valtmp)-1, 255);
}
if(strcmp(PlayerInfo[playerid][Passwort],password,true)== 0)
{
new key[256],val[256],Data[256];
while(fread(UserFile,Data,sizeof(Data)))
{
key = ini_GetKey(Data);
if(strcmp(key,"Level", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Level] = strval(val); }
if(strcmp(key,"Geld", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Geld] = strval(val); }
if(strcmp(key,"Heal", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Heal] = strval(val); }
if(strcmp(key,"Armor", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Armor] = strval(val); }
if(strcmp(key,"XKoord", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][XKoord] = strval(val); }
if(strcmp(key,"YKoord", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][YKoord] = strval(val); }
if(strcmp(key,"ZKoord", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][ZKoord] = strval(val); }
if(strcmp(key,"AKoord", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][AKoord] = strval(val); }
if(strcmp(key,"Neu", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Neu] = strval(val); }
if(strcmp(key,"Skin", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Skin] = strval(val); }
if(strcmp(key,"Inte", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Inte] = strval(val); }
if(strcmp(key,"Virt", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Virt] = strval(val); }
if(strcmp(key,"Bmkey", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Bmkey] = strval(val); }
if(strcmp(key,"Bhkey", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Bhkey] = strval(val); }
if(strcmp(key,"Brief", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Brief] = strval(val); }
if(strcmp(key,"Keys", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Keys] = strval(val); }
}
fclose(UserFile);
}
else
{
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Einloggen","Das Passwort ist nicht korrekt \nversuchen sie es noch einmal","Einloggen","Abbrechen");
fclose(UserFile);
PFalsch[playerid] += 1;
if(PFalsch[playerid] == 3) { Kick(playerid); SendClientMessage(playerid,Rot,"Sie wurden gekickt: Passwort 3 mal falsch!"); }
return 1;
}
}
return 1;
}
(E) Text
(E) Text neu geschrieben.
(E) Register und Login Zugeschrieben
(E) Nochmal was zugeschrieben bzw geändert
Habe ich dann sieht meine ini so aus:
Level= 1
Geld= 0
Heal= 100.0
Armor= 0.0
XKoord= -54.0
YKoord= 83.0
ZKoord= 3.0
AKoord= 248.0
Neu= 1
Skin= 158
Inte= 0
Virt= 0
Bmkey= 0
Bhkey= 0
Brief= 0
Keys= 0
aber es müsste so
Passwort= Mein Passwort
Level= 1
Geld= 0
Heal= 100.0
Armor= 0.0
XKoord= -54.0
YKoord= 83.0
ZKoord= 3.0
AKoord= 248.0
Neu= 1
Skin= 158
Inte= 0
Virt= 0
Bmkey= 0
Bhkey= 0
Brief= 0
Keys= 0
Dort Löscht er nur Pickups und 3d labels und sowas eben ich habe es in einem extra public gemacht
damit ongamemodeexit nicht so unsauber bzw unübersichtlich aussieht da es ne wichtige funkion ist
was denkt ihr wie ichs noch beheben kann es ist nun sehr wichtig für mich und halt bei einem Server
Restart der manchmal eben sein muss wehre dann immer von den usern das passwort weg aber nur
bei einem GMX ich habs bis jetz nur peer rcon konsole gemacht liegt es daran oder nicht? nur das
Porblem muss dringend weg ich bitte drum das mir jemand hilft.
LG: Qini
So ich weiß nun worran es liegt bzw wann das passwort gelöscht wird und zwar beim normalen disconnecten bleibt es aber
bei einem gmx wird es gelöscht so sieht mein OnGameModeExit aus:
public OnGameModeExit()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
Delen();
OnPlayerUpdate(i);
Eingeloggt[i] = 0;
}
}
return 1;
}
(E) Text
Schau mal hier:
[ SCRIPTING ] Eingänge/Ausgänge ohne CMD
vlt hilft es dir ja ein wenig im Toturials berreich sind noch mehrere schau dich dort einfach mal um
LG: QIni
Fail? code kopiert ?
if(strcmp(cmdtext,"/dw",true) == 0)
{
if(GetPlayerWeapon(playerid) == 24)
{
SetPlayerAmmo(playerid,24,0);
}
else
{
SendClientMessage(playerid,Deinefarbe,"Du hast keine Deagle!");
}
return 1;
}
(E) COde
Er Printet das Passwort aus der ini aber dann löscht er es raus wie sonst auch immer es soll aber da bleiben
also das passwort soll so bleiben wie es nachem registrieren ist sieht so aus Passwort= Mein Passwort
aber komischer weise siehts dann immer so aus Passwort= hmm hat noch jemand ne idee wehre sehr wichtig.
(E) Text umformiliert