wie bringe ich Sirenen zum Leuchten? Also selbst gebastelte Sirenen wie object ID 19419. Muss ich da irgendwas mit ActivateObject oder wie?
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
-
Zu
Zu
Klappt nicht
-
Klar, kann ja auch gar nicht gehen. Ist mir vorhin nicht aufgefallen, aber du musst ja ein callback aufrufen.
C
Alles anzeigenocmd:listfraktionen(playerid,params[]) { mysql_tquery(dbhandle,"SELECT * FROM `fraktionen`","OnLoadFraktionen","i",playerid); return 1; } forward OnLoadFraktionen(playerid); public OnLoadFraktionen(playerid) { if(!cache_num_rows())return 1; new fID[sizeof(sInfo)],fName[sizeof(sInfo)][128], string[128]; for(new i = 0; i < cache_num_rows(); i++) { fID[i] = cache_get_field_content_int(i,"ID",dbhandle); cache_get_field_content(i,"name",fName[i],dbhandle,128); format(string,sizeof string,"%s%s\t%i\n",string,fName[i],fID[i]); } ShowPlayerDialog(playerid, DIALOG_FRAKLISTE, DIALOG_STYLE_LIST, "Fraktionen-Liste",string,"Ok", "Schließen"); return 1; }
Bei "FROM `fraktionen`" musst du ggf. die Tabelle anpassen.
-
Klar, kann ja auch gar nicht gehen. Ist mir vorhin nicht aufgefallen, aber du musst ja ein callback aufrufen.
C
Alles anzeigenocmd:listfraktionen(playerid,params[]) { mysql_tquery(dbhandle,"SELECT * FROM `fraktionen`","OnLoadFraktionen","i",playerid); return 1; } forward OnLoadFraktionen(playerid); public OnLoadFraktionen(playerid) { if(!cache_num_rows())return 1; new fID[sizeof(sInfo)],fName[sizeof(sInfo)][128], string[128]; for(new i = 0; i < cache_num_rows(); i++) { fID[i] = cache_get_field_content_int(i,"ID",dbhandle); cache_get_field_content(i,"name",fName[i],dbhandle,128); format(string,sizeof string,"%s%s\t%i\n",string,fName[i],fID[i]); } ShowPlayerDialog(playerid, DIALOG_FRAKLISTE, DIALOG_STYLE_LIST, "Fraktionen-Liste",string,"Ok", "Schließen"); return 1; }
Bei "FROM `fraktionen`" musst du ggf. die Tabelle anpassen.
Mhh Komisch klappt nicht trotz das ich alles angepasst habe.
-
Lasse dir das mal so printen, was erscheint dann im server.log?
C
Alles anzeigenforward OnLoadFraktionen(playerid); public OnLoadFraktionen(playerid) { printf("rows: %i",cache_num_rows()); if(!cache_num_rows())return 1; new fID[sizeof(sInfo)],fName[sizeof(sInfo)][128], string[128]; for(new i = 0; i < cache_num_rows(); i++) { printf("i: %i",i); fID[i] = cache_get_field_content_int(i,"ID",dbhandle); cache_get_field_content(i,"name",fName[i],dbhandle,128); printf("fID: %i - Name: %s",fID[i],fName[i]); format(string,sizeof string,"%s%s\t%i\n",string,fName[i],fID[i]); } ShowPlayerDialog(playerid, DIALOG_FRAKLISTE, DIALOG_STYLE_LIST, "Fraktionen-Liste",string,"Ok", "Schließen"); return 1; }
-
Lasse dir das mal so printen, was erscheint dann im server.log?
C
Alles anzeigenforward OnLoadFraktionen(playerid); public OnLoadFraktionen(playerid) { printf("rows: %i",cache_num_rows()); if(!cache_num_rows())return 1; new fID[sizeof(sInfo)],fName[sizeof(sInfo)][128], string[128]; for(new i = 0; i < cache_num_rows(); i++) { printf("i: %i",i); fID[i] = cache_get_field_content_int(i,"ID",dbhandle); cache_get_field_content(i,"name",fName[i],dbhandle,128); printf("fID: %i - Name: %s",fID[i],fName[i]); format(string,sizeof string,"%s%s\t%i\n",string,fName[i],fID[i]); } ShowPlayerDialog(playerid, DIALOG_FRAKLISTE, DIALOG_STYLE_LIST, "Fraktionen-Liste",string,"Ok", "Schließen"); return 1; }
[16:14:43] rows: 8
-
Eh, mehr kommt da nicht?
-
Eh, mehr kommt da nicht?
Nope nur das
-
So?
C
Alles anzeigenforward OnLoadFraktionen(playerid); public OnLoadFraktionen(playerid) { printf("rows: %i",cache_num_rows()); if(!cache_num_rows())return 1; new fID[100],fName[100][128], string[128]; for(new i = 0; i < cache_num_rows(); i++) { printf("i: %i",i); fID[i] = cache_get_field_content_int(i,"ID",dbhandle); cache_get_field_content(i,"name",fName[i],dbhandle,128); printf("fID: %i - Name: %s",fID[i],fName[i]); format(string,sizeof string,"%s%s\t%i\n",string,fName[i],fID[i]); } ShowPlayerDialog(playerid, DIALOG_FRAKLISTE, DIALOG_STYLE_LIST, "Fraktionen-Liste",string,"Ok", "Schließen"); return 1; }
-
-
So?
C
Alles anzeigenforward OnLoadFraktionen(playerid); public OnLoadFraktionen(playerid) { printf("rows: %i",cache_num_rows()); if(!cache_num_rows())return 1; new fID[100],fName[100][128], string[128]; for(new i = 0; i < cache_num_rows(); i++) { printf("i: %i",i); fID[i] = cache_get_field_content_int(i,"ID",dbhandle); cache_get_field_content(i,"name",fName[i],dbhandle,128); printf("fID: %i - Name: %s",fID[i],fName[i]); format(string,sizeof string,"%s%s\t%i\n",string,fName[i],fID[i]); } ShowPlayerDialog(playerid, DIALOG_FRAKLISTE, DIALOG_STYLE_LIST, "Fraktionen-Liste",string,"Ok", "Schließen"); return 1; }
genau das selbe bedeutet es geht ab da nicht mehr weiter
-
Ok, habe es gerade mal selbst getestet. Ich habe ein bisschen zu hohen Speicher reserviert. Schreibe das aus Testzwecken mal so. Das klappt aber, oder?
C
Alles anzeigenforward OnLoadFraktionen(playerid); public OnLoadFraktionen(playerid) { printf("rows: %i",cache_num_rows()); if(!cache_num_rows())return 1; new fID[100],fName[10][128], string[128]; for(new i = 0; i < cache_num_rows(); i++) { printf("i: %i",i); fID[i] = cache_get_field_content_int(i,"ID",dbhandle); cache_get_field_content(i,"name",fName[i],dbhandle,128); printf("fID: %i - Name: %s",fID[i],fName[i]); format(string,sizeof string,"%s%s\t%i\n",string,fName[i],fID[i]); } ShowPlayerDialog(playerid, DIALOG_FRAKLISTE, DIALOG_STYLE_LIST, "Fraktionen-Liste",string,"Ok", "Schließen"); return 1; }
-
Ok, habe es gerade mal selbst getestet. Ich habe ein bisschen zu hohen Speicher reserviert. Schreibe das aus Testzwecken mal so. Das klappt aber, oder?
C
Alles anzeigenforward OnLoadFraktionen(playerid); public OnLoadFraktionen(playerid) { printf("rows: %i",cache_num_rows()); if(!cache_num_rows())return 1; new fID[100],fName[10][128], string[128]; for(new i = 0; i < cache_num_rows(); i++) { printf("i: %i",i); fID[i] = cache_get_field_content_int(i,"ID",dbhandle); cache_get_field_content(i,"name",fName[i],dbhandle,128); printf("fID: %i - Name: %s",fID[i],fName[i]); format(string,sizeof string,"%s%s\t%i\n",string,fName[i],fID[i]); } ShowPlayerDialog(playerid, DIALOG_FRAKLISTE, DIALOG_STYLE_LIST, "Fraktionen-Liste",string,"Ok", "Schließen"); return 1; }
Funktioniert Nice aber das kleine Problem ist es Zeigt mir nicht als Tabellen form an die ich haben wollte hehe
kann ich das irgendwie ändern?
Wollte Ja als List Tabelle
-
Klar, das kann man ändern.
C
Alles anzeigenforward OnLoadFraktionen(playerid); public OnLoadFraktionen(playerid) { printf("rows: %i",cache_num_rows()); if(!cache_num_rows())return 1; new fID[100],fName[10][128], string[128]; for(new i = 0; i < cache_num_rows(); i++) { printf("i: %i",i); fID[i] = cache_get_field_content_int(i,"ID",dbhandle); cache_get_field_content(i,"name",fName[i],dbhandle,128); printf("fID: %i - Name: %s",fID[i],fName[i]); format(string,sizeof string,"%s%s\t%i\n",string,fName[i],fID[i]); } strins(string,"Name\tID\n",0);// fügt bei der ersten Position im string "Name\tID\n" hinzu. ;) ShowPlayerDialog(playerid, DIALOG_FRAKLISTE, DIALOG_STYLE_TABLIST_HEADERS, "Fraktionen-Liste",string,"Ok", "Schließen"); return 1; }
Sollte das sein, was du meinst.
-
Wollt mal fragen wie ich strings überprüfe
z.B. habe ich jetzt /toggleooc an/aus und wollte überprüfen ob das eingegebene an oder aus ist, mit werten kann ich ja umgehen aber strings im if vergleichen eher weniger
-
Dafür nutzt man in PAWN strcmp.
[wiki]strcmp[/wiki] -
Hallo,
wie kann ich das Blaulicht (derzeit auf dem Dach) auf die rote Markierung setzen?
Derzeitiger Code:
else if(GetVehicleModel(tmpcar) == 411) {
sirene[GetPlayerVehicleID(playerid)] = CreateObject(19288,0,0,0,0,0,0,100);
sirene1[GetPlayerVehicleID(playerid)] = CreateObject(19419,0,0,0,0,0,0,100);
sirene2[GetPlayerVehicleID(playerid)] = CreateObject(19288,0,0,0,0,0,0,100);
sirene3[GetPlayerVehicleID(playerid)] = CreateObject(19288,0,0,0,0,0,0,100);
AttachObjectToVehicle(sirene[GetPlayerVehicleID(playerid)],GetPlayerVehicleID(playerid),0.0,2.6,0,0,0,0);//Vorne Mitte AttachObjectToVehicle(sirene1[GetPlayerVehicleID(playerid)],GetPlayerVehicleID(playerid),0.0,0.0,0.7,0,0,0);//Dach sirene AttachObjectToVehicle(sirene2[GetPlayerVehicleID(playerid)],GetPlayerVehicleID(playerid),0.7,2.6,0,0,0,0);//Vorne Licht Beifahrerseite
AttachObjectToVehicle(sirene3[GetPlayerVehicleID(playerid)],GetPlayerVehicleID(playerid),-0.7,2.6,0,0,0,0);//Vorne Licht Fahrerseite
UCL[GetPlayerVehicleID(playerid)] = 1;
SendClientMessage(playerid,0xFF0000,"Blaulicht eingeschalten!");
return 1;
} -
Wollt mal fragen wie ich strings überprüfe
z.B. habe ich jetzt /toggleooc an/aus und wollte überprüfen ob das eingegebene an oder aus ist, mit werten kann ich ja umgehen aber strings im if vergleichen eher weniger
Erste Zeile unter OnPlayerCommandText:Ganz unten im Script:
Code
Alles anzeigenstrtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; }
Befehl:
-
Hat mal eben wer ne Möglichkeit parat wie ich in jeder Virtual Worlds meine Actors sehen kann?
-
Naja dann würde ich halt jetzt noch mal gerne wissen wie man Sirenen bei AttachObjectToVehicle zum leuchten bringt, finde da nichts zu bei google