Du speicherst beim Gamemodeinit den Namen des Spielers in einem String.
Wenn du nur den Namen hast, aber nicht die ID kannst du dann mit einer for Schleife alle Spieler durchgehen und Überprüfen ob den Name übereinstimmt.
Beiträge von a6150
-
-
Sehr gut, hast du Skype??
// IMMER NOCH KEINE LÖSUNG GEFUNDEN!////////////////// HAUS - SYSTEM ///////////////
stock CreateHouse(Float:x,Float:y,Float:z,preis,inhaber[32],interior)
{
new query[256];
format(query, sizeof(query), "INSERT INTO `houses` (`x`, `y`,`z`,`preis`,`inhaber`,`interior`) VALUES ('%f', '%f','%f','%d','%s','%d')",x,y,z,preis,inhaber,interior);
mysql_query(query);
LoadHaus(mysql_insert_id());
}
ocmd:hcreate(playerid,params[])
{
if(GetPVarInt(playerid,"Adminlevel")< 5)
{
SendClientMessage(playerid,ROT,"Sie sind nicht befugt diesen Befehl zu benutzen!");
}
else
{
new hauspreis;
new interior;
if(sscanf(params,"dd",hauspreis,interior))
{
return SendClientMessage(playerid,WEISS,"Benutze:/hcreate [preis][interior]");
}
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
CreateHouse(x,y,z,hauspreis,"Zu verkaufen",interior);
}
return 1;
}
stock LoadHaus(hausid)
{
new query[500];
format(query, sizeof(query), "SELECT * FROM `houses` WHERE id='%d'",hausid);
mysql_query(query);
mysql_store_result();
while(mysql_fetch_row(query))
{
sscanf(query, "p<|>is[24]fffdddds[24]s[24]s[24]s[24]d",
HausInfo[hausid][hID],
HausInfo[hausid][haus_inhaber],
HausInfo[hausid][haus_x],
HausInfo[hausid][haus_y],
HausInfo[hausid][haus_z],
HausInfo[hausid][haus_preis],
HausInfo[hausid][haus_interior],
HausInfo[hausid][haus_miete],
HausInfo[hausid][haus_mietbar],
HausInfo[hausid][mieter][0],
HausInfo[hausid][mieter][1],
HausInfo[hausid][mieter][2],
HausInfo[hausid][mieter][3],
HausInfo[hausid][haus_mietbar],
HausInfo[hausid][haus_virtualworld]);
CreateHouseOnMap(hausid);
mysql_free_result();
printf(query);
}
return 1;
}stock CreateHouseOnMap(hausid)
{
new Text[100];
if(HausInfo[hausid][haus_miete] == 1)
{
format(Text,sizeof(Text),"Besitzer: %s",HausInfo[hausid][haus_inhaber]);
HausInfo[hausid][haus_symbol] = CreateDynamicPickup(1239, 1, HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z], -1);//Enter
}else{
printf("works");
format(Text,sizeof(Text),"Das Haus ist zu verkaufen\nPreis: %d$\n/buyhouse - Haus kaufen", HausInfo[hausid][haus_preis]);
HausInfo[hausid][haus_symbol] = CreateDynamicPickup(1273, 1, HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z], -1);//Enter
}
HausInfo[hausid][haus_label] = Create3DTextLabel(Text,WEISS, HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z], 15, 0);
return 1;
}P.S Skript speichert das Haus korrekt in die Datenbank. Skript lädt dieses auch korrekt, jedoch scheint der Server dabei "abzustürzen". Innerhalb von LoadHaus() wird kein einziges printf() ausgeführt und auch andere Pickups ( z.B LSPD Enter) funktionieren danach nicht mehr. Wenn ich LoadHaus() bei GameModeInit ausführe, so werden gar keine Pickups mehr geladen!
-
Denkt ihr es liegt wirklich an der Abfrage? Die funktioniert auf meine Weise auch mal sehr gut. Doch dann auf einmal nicht mehr....ohne im Quelltext irgendwas zu ändern
-
Nach Slash's Hilfe sehen die Befehle anders aus. Trotzdem funktioniert das System nicht. Nach "x" hört es auf.
stock CreateHouse(Float:x,Float:y,Float:z,preis,inhaber[32],interior)
{
new query[256];
format(query, sizeof(query), "INSERT INTO `houses` (`x`, `y`,`z`,`preis`,`inhaber`,`interior`) VALUES ('%f', '%f','%f','%d','%s','%d')",x,y,z,preis,inhaber,interior);
mysql_query(query);
new test[32];
format(test,sizeof(test),"%d",mysql_insert_id());
printf(test);
LoadHaus(mysql_insert_id());
}
ocmd:hcreate(playerid,params[])
{
if(GetPVarInt(playerid,"Adminlevel")< 5)
{
SendClientMessage(playerid,ROT,"Sie sind nicht befugt diesen Befehl zu benutzen!");
}
else
{
new hauspreis;
new interior;
if(sscanf(params,"dd",hauspreis,interior))
{
return SendClientMessage(playerid,WEISS,"Benutze:/hcreate [preis][interior]");
}
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
CreateHouse(x,y,z,hauspreis,"Zu verkaufen",interior);
}
return 1;
}
stock LoadHaus(hausid)
{
new data[50],query[100];
format(query,sizeof(query),"SELECT * FROM `houses` WHERE `id`='%d'",hausid);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows())
{
if(mysql_retrieve_row())
{
mysql_fetch_field_row(data,"x");
HausInfo[hausid][haus_x]=floatstr(data);
mysql_fetch_field_row(data,"y");
HausInfo[hausid][haus_y]=floatstr(data);
mysql_fetch_field_row(data,"z");
HausInfo[hausid][haus_z]=floatstr(data);//söllte so funktionieren. MOMENT ^^ Siehst du das? sieht so aus als hat er nach X kein bock mehr. aber wieso?
mysql_fetch_field_row(data,"preis");
HausInfo[hausid][haus_preis]=strval(data);
mysql_fetch_field_row(data,"interior");
HausInfo[hausid][haus_interior]=strval(data);
mysql_fetch_field_row(data,"miete");
HausInfo[hausid][haus_miete]=strval(data);
mysql_fetch_field_row(data,"mieter1");
format(HausInfo[hausid][mieter][0],MAX_PLAYER_NAME,"%s",data);
mysql_fetch_field_row(data,"mieter2");
format(HausInfo[hausid][mieter][1],MAX_PLAYER_NAME,"%s",data);
mysql_fetch_field_row(data,"mieter3");
format(HausInfo[hausid][mieter][2],MAX_PLAYER_NAME,"%s",data);
mysql_fetch_field_row(data,"mieter4");
format(HausInfo[hausid][mieter][3],MAX_PLAYER_NAME,"%s",data);
mysql_fetch_field_row(data,"mietbar");
HausInfo[hausid][haus_mietbar]=strval(data);
mysql_fetch_field_row(data,"virtualworld");
HausInfo[hausid][haus_virtualworld]=strval(data);
mysql_fetch_field_row(data,"inhaber");
format(HausInfo[hausid][haus_inhaber],MAX_PLAYER_NAME,"%s",data);
}
}
if(!strcmp(HausInfo[hausid][haus_inhaber],"Zu verkaufen"))
{
HausInfo[hausid][haus_symbol] = CreatePickup(1273 ,23,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],0);
new label[192];
format(label,sizeof(label),"HAUS ID: %d\nZu verkaufen\nPreis:%d",hausid,HausInfo[hausid][haus_preis]);
HausInfo[hausid][haus_label] = Create3DTextLabel(label,WEISS,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],20.0,0);
}
else
{
HausInfo[hausid][haus_symbol] = CreatePickup(1272 ,23,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],0);
new label[192];
new freiraum[MAX_HAUS];
for(new i=0;i<4;i++)
{
new besetzt[MAX_HAUS];
if(!strcmp(HausInfo[hausid][mieter][i],""))
besetzt[hausid]++;
freiraum[hausid]=4-besetzt[hausid];
}
if(freiraum[hausid] < 0)return freiraum[hausid]=0;
format(label,sizeof(label),"HAUS ID: %d\nBesitzer:%s\nMiete:%d\nFreie Räume:%d",hausid,HausInfo[hausid][haus_inhaber],HausInfo[hausid][haus_miete],freiraum[hausid]);
HausInfo[hausid][haus_label] = Create3DTextLabel(label,WEISS,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],20.0,0);
}
mysql_free_result();
return 1;
} -
Das ist aber ja nicht der Fehler. LoadHaus (); wird definitiv aufgerufen.
-
Sorry, hatte bisher nur mit dini gearbeitet
Was auch interessant ist: Der Server returnt UNKNOWN Command .... obwohl überall return 1 steht..?
ID wird richtig übergeben. Laut mysql_log findet kein Zugriff auf die DB statt. -
Sehr geehrte Breadfish User,
ich habe leider ein Problem mit meinem Haussystem. Es wird bei LoadHaus(hausid) entweder gar keine Abfrage gemacht oder das Pickup erscheint einfach nicht.P.S mysql_getfloat erfordert bei dem 4. Argument einen String, daher die Umwandlung.
////////////////// HAUS - SYSTEM ///////////////
stock CreateHouse(Float:x,Float:y,Float:z,preis,inhaber[32],interior)
{
new query[256];
format(query, sizeof(query), "INSERT INTO `houses` (`x`, `y`,`z`,`preis`,`inhaber`,`interior`) VALUES ('%d', '%d','%d','%d','%s','%d')",x,y,z,preis,inhaber,interior);
mysql_query(query);
return LoadHaus(mysql_insert_id());
}
ocmd:hcreate(playerid,params[])
{
if(GetPVarInt(playerid,"Adminlevel")< 5)
{
SendClientMessage(playerid,ROT,"Sie sind nicht befugt diesen Befehl zu benutzen!");
}
else
{
new hauspreis;
new interior;
if(sscanf(params,"dd",hauspreis,interior))
{
return SendClientMessage(playerid,WEISS,"Benutze:/hcreate [preis][interior]");
}
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
CreateHouse(x,y,z,hauspreis,"Zu verkaufen",interior);
}
return 1;
}
stock LoadHaus(hausid)
{
new haus[32];
format(haus,sizeof(haus),"%d",hausid);
HausInfo[hausid][haus_x] = mysql_GetFloat("houses","x","id",haus);
HausInfo[hausid][haus_y] = mysql_GetFloat("houses","y","id",haus);
HausInfo[hausid][haus_z] = mysql_GetFloat("houses","z","id",haus);
HausInfo[hausid][haus_preis] = mysql_GetInt("houses","preis","id",haus);
//HausInfo[hausid][haus_verkauft] = mysql_GetInt("houses","verkauft","id",haus);
HausInfo[hausid][haus_interior] = mysql_GetInt("houses","interior","id",haus);
HausInfo[hausid][haus_miete] = mysql_GetInt("houses","miete","id",haus);
format(HausInfo[hausid][mieter][0],MAX_PLAYER_NAME,"%s",mysql_GetString("houses","mieter1","id",haus));
format(HausInfo[hausid][mieter][1],MAX_PLAYER_NAME,"%s",mysql_GetString("houses","mieter2","id",haus));
format(HausInfo[hausid][mieter][2],MAX_PLAYER_NAME,"%s",mysql_GetString("houses","mieter3","id",haus));
format(HausInfo[hausid][mieter][4],MAX_PLAYER_NAME,"%s",mysql_GetString("houses","mieter4","id",haus));
HausInfo[hausid][haus_mietbar]=mysql_GetInt("houses","mietbar","id",haus);
HausInfo[hausid][haus_virtualworld]=mysql_GetInt("houses","virtualworld","id",haus);
format(HausInfo[hausid][haus_inhaber],32,"%s",mysql_GetString("houses","inhaber","id",haus));
if(!strcmp(HausInfo[hausid][haus_inhaber],"Zu verkaufen"))
{
HausInfo[hausid][haus_symbol] = CreatePickup(1273 ,23,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],0);
new label[192];
format(label,sizeof(label),"HAUS ID: %d\nZu verkaufen\nPreis:%d",hausid,HausInfo[hausid][haus_preis]);
HausInfo[hausid][haus_label] = Create3DTextLabel(label,WEISS,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],20.0,0);
}
else
{
HausInfo[hausid][haus_symbol] = CreatePickup(1272 ,23,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],0);
new label[192];
new freiraum[MAX_HAUS];
for(new i=0;i<4;i++)
{
new besetzt[MAX_HAUS];
if(!strcmp(HausInfo[hausid][mieter][i],""))
besetzt[hausid]++;
freiraum[hausid]=4-besetzt[hausid];
}
if(freiraum[hausid] < 0)
{
freiraum[hausid]=0;
}
format(label,sizeof(label),"HAUS ID: %d\nBesitzer:%s\nMiete:%d\nFreie Räume:%d",hausid,HausInfo[hausid][haus_inhaber],HausInfo[hausid][haus_miete],freiraum[hausid]);
HausInfo[hausid][haus_label] = Create3DTextLabel(label,WEISS,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],20.0,0);
}
return 1;
} -
Im Grunde genommen sind Definitionen nichts anderes als "Verschönerungen". Durch Definitionen weißt du einem Bestimmten String einen Wert zu. In deinem Fall somit #define TEAM_POLIZEI 1.
Somit machst du dann nichts anderes als in einer Funktion die Zahl 1, d.h. die Nummer einer Fraktion, durch das leicht lesbare und nachvollziehbare TEAM_POLIZEI zu ersetzen.
Es ist somit ein Mehraufwand und ein kleiner Zeitverlust zu vermelden. Mit stellt sich hierbei nur die Frage, ob eine "Klarstellung" der Kontanten während des Compilierungsprogresses stattfindet oder aktiv im Skript ausgeführt wird?Mfg. a6150
-
Update: Über USB klappt die Aufnahme problemlos, jedoch natürlich viel zu wenig FPS, aber die Festplatte klinkt sich nicht aus!
// edit: Push! Hat niemand eine Idee?
-
Ich biete Hilfe an :)! Jedoch für einen gewissen Stundenlohn PN bei Interesse!
-
Auch bei NTFS das selbe Problem!
-
Fraps speichert in 3,95 GB Parts
/edit aber ich werde deinen Tipp ausprobieren ;)! -
Hey Leute,
in der letzten Zeit habe ich folgendes Problem.
Meine externe Medion Festplatte ist durch ein eSATA Kabel mit dem PC verbunden.
Windows erkennt die Festplatte beim Start und sie lässt sich auch durchgehend bedienen.
Ich mache Let's Plays und speichere meine Fraps - Aufnahmen auf dieser externen Festplatte.Doch nun zum Problem:
Mitten in einer Aufnahme kriege ich einen Megalagg ( ca. 5 sec.) und danach stoppt die Aufnahme und die externe Festplatte verschwindet aus dem Windows Explorer! Erst nach einem Reboot wird diese wieder sichtbar und lässt sich ansteuern.Infos:
- Die Festplatte hat ca. 400 GB freien Speicherplatz
- Die Festplatte ist in FAT32 formatiert
- Die Festplatte ist nicht fragmentiert.Hat jemand eine Idee, wieso sich die Festplatte aushängt?
Hoffe auf baldige Hilfe.
Mit freundlichen grüßen,
a6150 -
Hi,
http://wiki.sa-mp.com/wiki/Scripting_Basics#Strings
sowie
http://wiki.sa-mp.com/wiki/Formatsollten die bei der Lösung deines Problems helfen.
-
Schreib mir diesbezüglich eine PN.
-
Ich kann dir helfen, aber wie gesagt Pn!
-
Schreib mir diesbezüglich eine PN.
-
-
- Habe bereits diesen Auftrag übernommen. -
-