Du sagst es er sollte. Er ist noch nicht erschienen und wird es wahrscheinlich auch nicht so wie ich Rockstart kenne.
Beiträge von CaZe
-
-
Kannst du machen aber wenn du es richtig eingerückt hast und nicht wie hier dann brauchst du auch kein else
-
Ich würde dir raten nutze Alt+N oder STRG+N ansosten müssten du noch Abfragen ob shift gedrück wär und ich weiß leider gerade nicht wie das geht. Musst dich ein bisschen bei AHK einfinden.
-
-
Was für eine API nutzt du?
-
Ja aber dies hier ist doch wohl kein Enum:
if(step){
for(new i=0; i<cache_get_row_count(); i++){
if(MarkerData[i][Label] != Text3D:INVALID_3DTEXT_ID){
Delete3DTextLabel(Text3D:MarkerData[i][Label]);
MarkerData[i][Label] = Text3D:INVALID_3DTEXT_ID;
}
MarkerData[i][ID] = cache_get_field_content_int(i,"ID",db_H);
MarkerData[i][MX] = cache_get_field_content_float(i,"X",db_H);
MarkerData[i][MY] = cache_get_field_content_float(i,"Y",db_H);
MarkerData[i][MZ] = cache_get_field_content_float(i,"Z",db_H);
cache_get_field_content(i, "fwort", MarkerData[i][Wort],db_H,20);
cache_get_field_content(i, "solution", MarkerData[i][Loesung],db_H,20);
MarkerData[i][Gewinn] = cache_get_field_content_int(i,"cash",db_H);
MarkerData[i][status] = cache_get_field_content_int(i,"state",db_H);
new string[55];format(string,sizeof(string),"{0087FF}[Event]\n{FFFFFF}Gesucht:\n%s",MarkerData[i][Wort]);
MarkerData[i][Label] = Create3DTextLabel(string,0xFFFFFFFF,MarkerData[i][MX],MarkerData[i][MY],MarkerData[i][MZ],45.0,0,1);
MarkerData[i][timestamp] = tsp;
printf("%d",i);
m_count++;
}Schreibe es so:
if(step){
for(new i=0; i<cache_get_row_count(); i++){
if(MarkerData[i][Label] != INVALID_3DTEXT_ID){
Delete3DTextLabel(MarkerData[i][Label]);
MarkerData[i][Label] = INVALID_3DTEXT_ID;
}
MarkerData[i][ID] = cache_get_field_content_int(i,"ID",db_H);
MarkerData[i][MX] = cache_get_field_content_float(i,"X",db_H);
MarkerData[i][MY] = cache_get_field_content_float(i,"Y",db_H);
MarkerData[i][MZ] = cache_get_field_content_float(i,"Z",db_H);
cache_get_field_content(i, "fwort", MarkerData[i][Wort],db_H,20);
cache_get_field_content(i, "solution", MarkerData[i][Loesung],db_H,20);
MarkerData[i][Gewinn] = cache_get_field_content_int(i,"cash",db_H);
MarkerData[i][status] = cache_get_field_content_int(i,"state",db_H);
new string[55];format(string,sizeof(string),"{0087FF}[Event]\n{FFFFFF}Gesucht:\n%s",MarkerData[i][Wort]);
MarkerData[i][Label] = Create3DTextLabel(string,0xFFFFFFFF,MarkerData[i][MX],MarkerData[i][MY],MarkerData[i][MZ],45.0,0,1);
MarkerData[i][timestamp] = tsp;
printf("%d",i);
m_count++;
} -
Meines Wissen nach musst du nur Text3D: beim erstellen nutzen. Also bei new Text3D:DEINEDEFINIERUNG
-
-
-
Code
[02:16:28] [DEBUG] mysql_pquery - connection: 1, query: "UPDATE accounts SET waffenslot11='0',ammoslot11='0',waffenslot12", callback: "(null)", format: "(null)" [02:16:28] [DEBUG] CMySQLQuery::Execute[] - starting query execution [02:16:28] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''3' at line 1 [02:16:28] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError
Wo werden diese Parameter aufgerufen? In deimen PlayerUpdate sind sie ja nicht vorhanden. Es befindet sich dort ein Syntax fehler. -
PlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][eingeloggt]==0)return 1;//Speichern
new query[128];
PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
format(query,sizeof(query),"UPDATE accounts SET level='%i',money='%i',alevel='%i',premiumlevel='%i',haus='%i',eingemietet='%i' WHERE id='%i'",
PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pCash],PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pDonateRank],PlayerInfo[playerid][Haus],PlayerInfo[playerid][eingemietet],PlayerInfo[playerid][db_id]);
mysql_pquery(dbhandle,query);
}
return 1;
}
Du musst die query natürlich auch übebringen/"absenden" -
Du sollst mir zeigen wie du diesse hier nun geschrieben hast:
Du sagtest ja du hättest es überarbeitet
PlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][eingeloggt]==0)return 1;//Speichern
new query[128];
format(query,sizeof(query),"INSERT INTO accounts (level,money,alevel,premiumlevel,haus,eingemietet) VALUES ('%i','%i','%i','%i','%i')",
PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pCash],PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pDonateRank],PlayerInfo[playerid][Haus],PlayerInfo[playerid][eingemietet]);
}
return 1;
} -
Zeige mal bitte die Funktion wie du sie nun mit Update ... geschrieben hast. Überprüfe nochmal genau ob die Namen der caches wie du sie im skript angegeben hast auch mit der Datenbank übereinstimmen.
-
Entschuldigung dass ich mich hier so einmische aber schreib mal wie Jeffry: schon gesagt hat wo du PlayUpdate aufrufen lässt und zeige die Funktion nun mit Update
-
Ich danke dir vielmals Jeffry: jetzt klappt alles soweit ich das sehe und du hast echt riesen Arbeit geleistet mir zu helfen.
Großes Lob an dich von mir -
//EDIT::
enum interEnum
{
int_ID,
Float:int_exitX,
Float:int_exitY,
Float:int_exitZ,
Float:int_exitA,
int_type
};new InteriorInfo[][interEnum] =
{
//Apartments
{1,244.411987,305.032989,999.148437,265.2689,1},
/*Little edit*/{2,267.1509,304.9328,999.1484,265.6090,1},
//Houses
{8,2807.7825,-1174.4812,1025.5703,3.5707,2},
{3,2495.9944,-1692.4015,1014.7422,182.3604,2},
//Muss gemapped werden{5,2352.3496,-1180.6302,1027.9766,92.6137,2},
//Vielleicht Mappen{1,2524.4817,-1679.3834,1015.4986,267.9829,2},
//Villas
{12,2324.4504,-1149.1239,1050.7101,5.4272,3},
{5,1261.4669,-785.3972,1091.9063,268.5041,3}
};die Zahlen am Ende sind der Type, also ob es ein Apartment,Haus oder eine Villa ist.
//EDIT2::
Btw. exitA ist die Rotation die ich selber gesetzt habe -
In dem Array sind ja nur die Positionen des Interiors angegeben, also wo man hingeportert wird wenn man das Haus betritt.
Die Eingangs-Positionen sind ja da wo das PickUp etc. erstellt wird und dies wird ja per GetPlayerPos ermittelt. -
Hm, wenn ich das jetzt richtig verstehe darf ich keine Haus mit dem exakt gleichen Type sowie Interior erstellen oder wie sieht das aus?
-
Wie meinst du das? Blicke da gerade nicht richtig durch.
-
Hier die Debug Nachrichten(Original)
Ich habe lediglich 2x hintereinander exakt das gleiche Haus erstellt.Code
Alles anzeigen[15:13:22] count: 0 [15:13:22] 1 == 12 | 1 == 3 [15:13:22] 2 == 12 | 1 == 3 [15:13:22] 8 == 12 | 2 == 3 [15:13:22] 3 == 12 | 2 == 3 [15:13:22] 12 == 12 | 3 == 3 [15:13:22] 0 == 0 [15:13:22] Nutze InteriorInfo 4 [15:13:22] 5 == 12 | 3 == 3 [15:13:26] count: 1 [15:13:26] 1 == 12 | 1 == 3 [15:13:26] 2 == 12 | 1 == 3 [15:13:26] 8 == 12 | 2 == 3 [15:13:26] 3 == 12 | 2 == 3 [15:13:26] 12 == 12 | 3 == 3 [15:13:26] 0 == 1 [15:13:26] 5 == 12 | 3 == 3
//EDIT::
Btw. die PickUps die "anscheinend" noch da sind werden trotzdem gelöscht aber noch für die jenigen angezeigt, in deren Reichweite das PickUp gestreamed wurde. Also da ist das eigentlich egal.