So dumm bin ich auch nicht die warunug war egal ich mein nur das drunter warum das aufeinmal kommt
das schlüssel nicht gebraucht wird weis ich
Kann mir nun einer sagen wiso ich aufeinmal die datei größen angezeigt bekomme?
Beiträge von carlos1710
-
-
Hallo ich habe eben dateiformate mit dini definirt wollte compilen únd das spuckte der compiler aus
L:\Scripting\samp server\Reallive\SCReallive.pwn(1072) : warning 204: symbol is assigned a value that is never used: "schluesselID"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhaseHeader size: 2528 bytes
Code size: 79448 bytes
Data size: 165956 bytes
Stack/heap size: 16384 bytes; estimated max. usage=4492 cells (17968 bytes)
Total requirements: 264316 bytes1 Warning.
Ich hatte das noch nie kann mir einer sagen was der von mir will? -
steht doch da
wenn ich in ein auto einsteig und command eingebe dann meint der server dass es ihn nicht gibt und führt ihn darum auch nicht aus
wenn ich den command eingebe ohne in einem auto zu sein steht das nicht das das es ihn nicht gibt alsoerkennt der server ihn ja
eigentlich sollte das public autokaufen ausgeführt werden wenn man in einem auto ist -
Immer wenn ich in einem Auto sitze und /autokaufen eingebe steht unknown command
Immer wenn ich in keinem auto sitze un /autokaufen eingebe passirt nix ( is auch nix programirt)
so der befehl:
if (strcmp("/autokaufen", cmdtext, true, 10) == 0)
{
new vehicleid = GetPlayerVehicleID(playerid);
for(new i = 0; i < sizeof Buycars; i++)
{
if(vehicleid == kaufauto[i])
{
if(Spieler[playerid][geld] >= Buycars[i][Preis]) //geld abfrage anpassen!"
{
AutoKaufen(playerid); //eigenes public
}
else
{
SendClientMessage(playerid,0x00FF00,"Du hast nicht genug geld!");
RemovePlayerFromVehicle(playerid);
}
}
}
return 1;
} -
ich finde auch kein fehler ich ändere es mal in ini und mach den pfad vll nur auf /scriptfiles editir das hier wenn es geht oder nicht geht
-
In meinem server wird eine datei einfach nicht erstellt stattdessen stürtzt der server ab
public AutoKaufen(playerid)
{
print ("public");
new extraini[256], Autodatei[256];
format(extraini,256,"/extra.txt");
carID = dini_Int(extraini,"carID");
format(Autodatei,256,"/Autos/%s.txt",carID);
for(new i = 0; i < sizeof Buycars; i++)
{
print ("public1");
if(GetPlayerVehicleID(playerid) == kaufauto[i])
{
print ("public2");
for(new j = 0; j < sizeof Autohaus; j++)
{
print ("public4");
if(!strcmp(Autohaus[j][Name],Buycars[i][Autohausname],true))
{
print ("public3");//letzter Bericht
dini_Create(Autodatei);//wird nciht ausgeführt
print ("erstellt");//wird nicht erstellt
dini_Set(Autodatei,"Name",Buycars[i][Name]);
dini_IntSet(Autodatei,"modelid",Buycars[i][modelid]);
Woran ligt das.
Ich habe mich versuchert in meinen scriptfiles gibt es ein ordner namens Autos << genau so in groß und kleinschreibung -
die funktion geht denn wen ich zu wenig geld hab wird die client message ausgegeben
zudem steht bei mir nix unter on player enter vehicle nur unter
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid);
for(new i = 0; i < sizeof Buycars; i++)
{
if(vehicleid == kaufauto[i])
{
new str[150];
format(str,sizeof(str),"Möchten Sie dieses Fahrzeug kaufen?\n\nName: %s\nPreis: %d", Buycars[i][Name], Buycars[i][Preis])// diese nachricht kann ich lesen
SendClientMessage(playerid,COLOR_RED,"Tippe /autokaufen ein um das Auto zu kaufen.");// diese auch return 1;
}
else continue;
}
}
return 1;
}
dieser public muss also funktionirten
//EDIT: Der server schließt NACHDEM ich den befehl eingegeben habe
//EDIT2: Wenn ich NICHT genug geld hab funktionirt alles die console debugt den befehl und es wird ausgegeben das mir das geld nicht reicht
wenn mir das geld reicht wird nicht mal gedebugt (nicht mal "CMD" wird angezeigt die console stürtzt gleich ab
//EDIT3: Ich und ein freund haben festgestellt, bei ihm funktionirt das auto erstellen wie es soll nur bei mir geht der server aus liegt das an meinem pc?
//Edit4:nun wird bis zu public 3 gedebugt und dan stürtzt er ab
aber an den scriptfiles kan es nicht liegen hab alle ordner -
public AutoKaufen(playerid)
{
print ("public");
for(new i = 0; i < sizeof Buycars; i++)
{
print ("public1");
if(GetPlayerVehicleID(playerid) == kaufauto[i])
{
print ("public2");
for(new j = 0; j < sizeof Autohaus; j++)
{print ("public4");
if(!strcmp(Autohaus[j][Name],Buycars[i][Autohausname],true))//auto und autohaus sind gleich
{
print ("public3");
new extraini[50];
format(extraini,50,"/extra.txt");
carID = dini_Int(extraini,"carID");// beim 1. auto ist carid 1
new Autodatei[50];
format(Autodatei,50,"/Autos/%s.txt",carID);
dini_Create(Autodatei);
dini_Set(Autodatei,"Name",Buycars[i][Name]);
dini_IntSet(Autodatei,"modelid",Buycars[i][modelid]);
dini_FloatSet(Autodatei,"HP",1000.00);
dini_FloatSet(Autodatei,"posx",Autohaus[j][spawnx]);
dini_FloatSet(Autodatei,"posy",Autohaus[j][spawny]);
dini_FloatSet(Autodatei,"posz",Autohaus[j][spawnz]);
dini_FloatSet(Autodatei,"posa",Autohaus[j][spawna]);
dini_IntSet(Autodatei,"Abgeschlossen",0);
dini_IntSet(Autodatei,"Farbe1",-1);
dini_IntSet(Autodatei,"Farbe2",-1);
dini_IntSet(Autodatei,"Paintjob",-1);
dini_Set(Autodatei,"Nummernschild",Buycars[i][Name]);
CreateVehicle(Buycars[i][modelid],Autohaus[j][spawnx],Autohaus[j][spawny],Autohaus[j][spawnz],Autohaus[j][spawna],-1,-1,-1);
SetVehicleNumberPlate(carID,dini_Get(Autodatei,"Nummernschild"));
dini_IntSet(Autodatei,"Spoiler",GetVehicleComponentInSlot(carID,0));
dini_IntSet(Autodatei,"Hood",GetVehicleComponentInSlot(carID,1));
dini_IntSet(Autodatei,"Roof",GetVehicleComponentInSlot(carID,2));
dini_IntSet(Autodatei,"Sideskirt",GetVehicleComponentInSlot(carID,3));
dini_IntSet(Autodatei,"Lamps",GetVehicleComponentInSlot(carID,4));
dini_IntSet(Autodatei,"Nitro",GetVehicleComponentInSlot(carID,5));
dini_IntSet(Autodatei,"Exhaust",GetVehicleComponentInSlot(carID,6));
dini_IntSet(Autodatei,"Wheels",GetVehicleComponentInSlot(carID,7));
dini_IntSet(Autodatei,"Stereo",GetVehicleComponentInSlot(carID,8));
dini_IntSet(Autodatei,"Hydraulics",GetVehicleComponentInSlot(carID,9));
dini_IntSet(Autodatei,"FrontBumper",GetVehicleComponentInSlot(carID,10));
dini_IntSet(Autodatei,"RearBumper",GetVehicleComponentInSlot(carID,11));
dini_IntSet(Autodatei,"VentRight",GetVehicleComponentInSlot(carID,12));
dini_IntSet(Autodatei,"VentLeft",GetVehicleComponentInSlot(carID,13));
RemovePlayerFromVehicle(playerid);
GivePlayerMoney(playerid,Spieler[playerid][geld]-=Buycars[i][Preis]);
Autohaus[j][Kasse]+=Buycars[i][Preis];
Autos[carID][modelid] = dini_Int(Autodatei,"modelid");
Autos[carID][HP] = dini_Int(Autodatei,"HP");
Autos[carID][Farbe1] = dini_Int(Autodatei,"Farbe1");
Autos[carID][Farbe2] = dini_Int(Autodatei,"Farbe2");
Autos[carID][Paintjob] = dini_Int(Autodatei,"Paintjob");
Autos[carID][Nummernschild] = dini_Int(Autodatei,"Nummernschild");
Autos[carID][posx] = dini_Int(Autodatei,"posx");
Autos[carID][posy] = dini_Int(Autodatei,"posy");
Autos[carID][posz] = dini_Int(Autodatei,"posz");
Autos[carID][posa] = dini_Int(Autodatei,"posa");
Autos[carID][Abgeschlossen] = dini_Int(Autodatei,"Abgeschlossen");
Autos[carID][Spoiler] = dini_Int(Autodatei,"Spoiler");
Autos[carID][Wheels] = dini_Int(Autodatei,"Wheels");
Autos[carID][Nitro] = dini_Int(Autodatei,"Nitro");
Autos[carID][Roof] = dini_Int(Autodatei,"Roof");
Autos[carID][Hood] = dini_Int(Autodatei,"Hood");
Autos[carID][Sideskirt] = dini_Int(Autodatei,"Sideskirt");
Autos[carID][Lamps] = dini_Int(Autodatei,"Lamps");
Autos[carID][Exhaust] = dini_Int(Autodatei,"Exhaust");
Autos[carID][Stereo] = dini_Int(Autodatei,"Stereo");
Autos[carID][Hydraulics] = dini_Int(Autodatei,"Hydraulics");
Autos[carID][VentRight] = dini_Int(Autodatei,"VentRight");
Autos[carID][VentLeft] = dini_Int(Autodatei,"VentLeft");
Autos[carID][FrontBumper] = dini_Int(Autodatei,"FrontBumper");
Autos[carID][RearBumper] = dini_Int(Autodatei,"RearBumper");
carID ++;//auto mit carid wuede erstellt und ein enuer slot für ein auto wird frei gemacht[carid ist nun 2 ]
}
}
}
}
return 1;
}
//EIDT: Die funktion wird nicht aufgerufen (keine dubug info da console ja zu ist) -
Immer wenn ich diesen cmd eingebe:
if (strcmp("/autokaufen", cmdtext, true, 10) == 0)
{
print ("cmd");
new vehicleid = GetPlayerVehicleID(playerid);
for(new i = 0; i < sizeof Buycars; i++)
{
print ("schleife");
if(vehicleid == kaufauto[i])
{
print ("austo");
if(Spieler[playerid][geld] >= Buycars[i][Preis]) //geld abfrage anpassen!"
{
print ("kaufen");
AutoKaufen(playerid); //eigenes public
}
else
{
SendClientMessage(playerid,0x00FF00,"Du hast nicht genug geld!");
RemovePlayerFromVehicle(playerid);
}
}
}
return 1;
}
geht die console aus aber es steht nirgendwo "ServerClose the Connection" und ingame gibts auch kein restart
Hier mal meine server_log
----------------------
v0.3c R2, (C)2005-2011 SA-MP Team[13:36:27] filterscripts = "" (string)
[13:36:27]
[13:36:27] Server Plugins
[13:36:27] --------------
[13:36:27] Loaded 0 plugins.[13:36:27]
[13:36:27] Filter Scripts
[13:36:27] ---------------
[13:36:27] Loaded 0 filter scripts.
------------------------------------------------------------------------
[13:36:28] Ganmemode by Benjamin Stern alias: carlos1710, BennIY and bennistirili.
[13:36:28] ------------------------------------------------------------------------[13:36:28] Number of vehicle models: 14
[13:36:49] Incoming connection: 127.0.0.1:53445
[13:36:50] [join] BennIY has joined the server (0:127.0.0.1)
Console input: lol // debug nach dem connecten
Console input: login // debug nach login
Console input: spawn // debug nach skinwahl
Console input: im auto // debug wen ich mich ins auto setze
//nach dem ins auto setzen geb ich "/autokaufen" ein und die console schließt (ingame bekommt man davon aber nix mit das spiel läuft weiter) -
Nein den pfad gab es nicht darum existirte die ini nicht und es wird 0 zurück gegeben hab nun noch das setplayerpos eingefügt sollte nun gehen danke
Hab halt nicht gesehen das der Pfad falsch angegeben war -
Ich hab das nur gemacht zum testen ja der interordner heist "Spieler" und das eingeloggt = 1 hab ich nur dadrübetr gemacht um heraus zu finden ob es an der abfrage oder an der variable ligt
weist du was da falsch ist (In echt wird die variable nach register oder login auf 1 gesetzt)das einzige was gespeichert wird ist das passwort (direkt nach dem login)
//EDIT Oh nein im unterordner von spieler ist nix das ist ein fehler hab was schnell mit replace getauscht war das auch dabei ich glaub daran ligts nun mal testen
//EDIT 2 nun gez danke kein wunder das es nciht ging wenn acc>Forumat nicht existirt
Aber nun Spawnt man am 0 punkt muss da noh irgendwo getplayerpos vorher rein? -
Ich hab grad Ich hab grad mein login registriersystem eingebaut und festsellen müüssen, dass eine Abfrage nich funfktionirt Hab mit debuggen versucht und den fehler gefunden weis aber nicht was falsch ist
public OnPlayerDisconnect(playerid, reason)
{
print("public");
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"Spieler/Spieler/%s.datei",pname);
print("abfrage");
Spieler[playerid][eingeloggt] = 1;//variable wird auf 1 gesetzt
if(fexist(accFormat) && Spieler[playerid][eingeloggt] == 1)//variable ist nicht mehr 1 Wiso?
{
print("speichern");
dini_IntSet(accFormat,"skin",Spieler[playerid][skin]);
dini_FloatSet(accFormat,"lastx",Spieler[playerid][lastx]);
dini_FloatSet(accFormat,"lasty",Spieler[playerid][lasty]);
dini_FloatSet(accFormat,"lastz",Spieler[playerid][lastz]);
}
print("reset");
Spieler[playerid][eingeloggt] = 0;
Spieler[playerid][skin] = 0;
Spieler[playerid][lastx] = (0.0);
Spieler[playerid][lasty] = (0.0);
Spieler[playerid][lastz] = (0.0);
return 1;
}
die funktion speichern wied nicht aufgerufen -
auch mit dieser abfrage funktionirt es nicht
//Edit hab mal neues script angefangen und festgestellt, der ganzue dialog geht nicht denn nach dem registriren kommt auch keine class seleciton -
Du kannst das scritp für diebe soo unbrauchbar machen das sie nur deine code stukturen sehen können ( alle variabeln sind falsch decompilirt)
Du kannst dein scritp gegen deamx zwar schützen aber ich mache das nicht da ich deamx selber benutze um aus alten filterscripts befehle sehe
wenn du dein script zu 99.99 % schützen willst mach genug befehle die nur du kennst z.b. alle userdaten oder scriptfiles löschen.
Leute bannen (ohne admin sein zu müssen) per befehl usw denk dir solche hürden aus denn jeder der dein script auf macht und diese befehle sieht kann sie trotzdem nicht verändern da des unbrauchbar ist somit bist du immer sicher. -
Hat nachteile:
Der Dieb nutzt DeAMX und sieht den befehl, kann dan auch den server aktiviren.(Löschen kann er ihn ja net da das script dann unbrauchbar wird.
Ich würd sowiso ein cmd mit /creadits machen damit ist man sucher.(kann er auch nicht editiren da es sonst unbrauchbar wird)
Und im notfall hab ich auch ein cmd den nur ich weis der alle spieelrdaten löscht und den server "zerstört" wenn der dieb kein backup hat hab ich gewonnen(was aber auch ne nachteil hat, dass der Dieb den cmd sieht)[Er kann ihn aber nicht weg machen da sonst das script kaputt ist]
Wer euer gm haben will kommt immer dran man kann sich nie 100% schützen aber man kann sich immer dinge einfallen lassen die Diebe hindern. -
Hallo brotfische
Nachdem ich mein haussystem wegen errors wieder gelöscht habe hab ich ein 2. Problem
Beim Loginsystem ist das passwort des spielers IMMER richtig.
Hier ein bisschen code:
if(dialogid == DIALOG_LOGIN)// ID Login {
{
print("LOGIN");
if(!strlen(inputtext))
{
print("LOGINFalse");
return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!Du wurdest gekickt.");
}
if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) //Egal was man eingibt, es wird immer "true" zurück gegeben .Die ganze zeit gings nun aufeinmal nicht mehr, was ist das Falsch .
{
print("LOGINTrue");
Spieler[playerid][hateinacc] = 1;
Spieler[playerid][eingeloggt] = 1; // Spieler ist nun erfolgreich eingeloggt
Spieler[playerid][Virtualworld] = dini_Int(accFormat,"Virtualworld");
Spieler[playerid][geld] = dini_Int(accFormat,"geld");
Spieler[playerid][skin] = dini_Int(accFormat,"skin");
Virtualworldd = Spieler[playerid][Virtualworld];
spielergeld = Spieler[playerid][geld];
spielerskin = Spieler[playerid][skin];
SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.Drücke in der ClassSelection einfach auf spawn dein Skin wird automatisch geladen");
}
if(!strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0)
{
print("LOGINError");
SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!Du wurdest gekickt.");
}
}
Das system ist nach dem tutorial (Login/register mit Gui) aufgebaut.
Die Prints sind noch vom Debug -
gut damit kenn ich michj nicht aus versuch trotzdem jede einzelne variable zu speichern und wieder zudammen zu fassen
-
GetPlayerPos(playerid, Spieler[playerid][lastx], Spieler[playerid][lasty], Spieler[playerid][lastz]);
so hab ich die position des spielers abgefragt schau mal im tutorialbereich da is ein simples login/registrir tut und wa wird auch diese funktion angesprochen. -
frag mal die coordinaten bei onPlayerDissconnet ab und anch dort für jede koordinate eine zeile also
dini_FloatSet([DEIN_DATEINAME],"lastx",Spieler[playerid][lastx]);
dini_FloatSetDEIN_DATEINAME],"lasty",Spieler[playerid][lasty]);
dini_FloatSetDEIN_DATEINAME],"lastz",Spieler[playerid][lastz]);
und bei on player spawn
Spieler[playerid][lastx] = dini_Float(accFormat,"lastx");
Spieler[playerid][lasty] = dini_Float(accFormat,"lasty");
Spieler[playerid][lastz] = dini_Float(accFormat,"lastz");
SetPlayerPos(playerid,Spieler[playerid][lastx],Spieler[playerid][lasty],Spieler[playerid][lastz]);
lädst du die variabeln und setzt den spieler an die position ( musst du an dein scritp editiren) -
ich schau mal aber dass kann gut sein dass die dann stören