[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
Jojo,
kleine Frage zu Create3DTextLabel. Ziel: Für jedes Fahrzeug einer bestimmten ID soll das 3DTextLabel erstellt werden OnVehicleSpawn():
Ach ja, die Frage. Warum funktionierts nicht? Ist doch soweit richtig oder irre ich mich?
Code
Alles anzeigen#define MAX_DINGS 50000 enum FuckIt { fAmmoT, Text3D:fTextsT } new dings[MAX_VEHICLES][FuckIt]; OnVehicleSpawn(vehicleid) { if(GetVehicleModel(vehicleid) == <any model-id>) { dings[vehicleid][fAmmoT] = MAX_DINGS; Delete3DTextLabel(dings[vehicleid][fTextsT]); new vDingstr[128]; format(vDingstr, sizeof(vDingstr), "{FF0000}[DINGSER]\nDINGSDONGSAMMOLONGS {7C3D12}[ {7A5238}%i / %i {7C3D12}]", dings[vehicleid][fAmmoT], MAX_DINGS); dings[vehicleid][fTextsT] = Create3DTextLabel(vDingstr, 0xFF0000FF, 30.0, 40.0, 50.0, 40.0, 0, 1); Attach3DTextLabelToVehicle(dings[vehicleid][fTextsT], vehicleid, 0.0, 0.0, 1.5); } return 1; } -
Du hast vor OnVehicleSpawn das public Keyword vergessen.
Und was ist das in Zeile 13? Einfach nur ein Platzhalter? Falls das dein richtiger Code ist... Wie hast du den bitte compilet? Da müsste der Compiler dir Fehler ausgeben.
-
Du hast vor OnVehicleSpawn das public Keyword vergessen.
Und was ist das in Zeile 13? Einfach nur ein Platzhalter? Falls das dein richtiger Code ist... Wie hast du den bitte compilet? Da müsste der Compiler dir Fehler ausgeben.
Tach erstmal,
ist mein Code, habs nicht nötig Code zu stehlen und grundlegende Vorgehensweisen (wie z.B. ich hier gerade durchführe) sind auch ziemlich bekannt. Ich hab das public einfach hier vergessen. In mein gm-skript ist das public da.
In Zeile 13 kann eine beliebige Model-ID rein. Ist nur alles gekürzt, weil ich einfach nicht den Content von meinem Code verraten werde. Klar wird wahrscheinlich offensichtlich sein, wenn man einfach mal Ammo liest. Hängt wohl mit ner Waffe zusammen.Also ich mache mich jetzt mal daran CreateDynamic3DTextLabel zu verwenden. Vlt. klappts ja damit. Hab schon zich Seiten im Samp-Forum abgegrast, jedoch ohne jeglichen Erfolg.
Mit CreateDynamic3DTextLabel hats funktioniert. Case solved!
-
Ich frage mich schon seit Anfang an, wie ich einen Dialog dem Spieler wieder anzeige in diesem Fall:
ShowPlayerDialog(playerid, DIALOG1 [...]
if(dialogid == DIALOG1)
Jetzt hier in der Abfrage, wenn ich ein switch erstelle und er case 0 auswählt, dass er genau den selben Dialog angezeigt bekommt.
Gibt es da irgendwas, was man machen kann, außer genau die selbe Zeile dahin zu pasten? -
Gibt es da irgendwas, was man machen kann, außer genau die selbe Zeile dahin zu pasten?
Ohne Includes oder sonstiges, nein.
-
Was sind die Schlagwörter um so ein Include zu finden

-
Gibt es da irgendwas, was man machen kann, außer genau die selbe Zeile dahin zu pasten?
Du könntest die Dialoge die du immer wieder Anzeigen lassen möchtest und diese sich im Grunde nie ändern einfach über eine Funktion anzeigen lassen.
ialoge die sich immer ändern wird schwierig.
-
Meine Frage ist, ob mein Code, das gleiche bewirkt, wie der unten drunter.
Sprich, kann ich eine while Schleife verwenden anstatt for zu benutzen, welche Vor & Nachteile bilden sich dann ?
while (i < GetMaxPlayers()){if(IsPlayerLoggedIn(i) == 0)continue;
if(pInfo[i][pFraktion] != pInfo[playerid][pFraktion])
continue;SendClientMessage(i, color, str);
}
for(new i;i<GetMaxPlayers();i++){
if(IsPlayerLoggedIn(i) == 0)continue;
if(pInfo[i][pFraktion] != pInfo[playerid][pFraktion])continue;
SendClientMessage(i, color, str);
} -
Bewirkt es das gleiche?
Nein, da in der while Schleife auch das i++ fehlt, erstellt du eine unendliche Schleife.
Wäre es da wäre es das gleiche, ja.Du solltest aber grundsätzlich immer einen for Loop verwenden statt while, da ein for Loop performanter ist.
-
Jemand eine Idee wieso die Autos so spawnen & was ich dagegen machen kann?
Screenshot ist unten beigelegt.
sa-mp-042.png -
Was genau meinst du? Dass die Autos falsch herum stehen liegt an der Rotation, diese kannst du bei Create(Dynamic)Vehicle setzen.
-
Oh, das wusste ich noch gar nicht.
Die Angle, ist bei jedem Auto, gegeben.PWN - CODE
stock createFrakCars()
{
FrakCars[FRAK_GROVE][0] = AddStaticVehicleEx(411, 2471.7305, -1653.9286, 13.1295, 91.1799,234,234, 600); // gs_infernus_1
FrakCars[FRAK_GROVE][1] = AddStaticVehicleEx(411, 2481.5835, -1653.9379, 13.1157, 89.6524,234,234, 600); // gs_infernus_2
FrakCars[FRAK_GROVE][2] = AddStaticVehicleEx(560, 2499.8689, -1654.9833, 13.1318, 73.3367,234,234, 600); // gs_sultan_1
FrakCars[FRAK_GROVE][3] = AddStaticVehicleEx(560, 2510.4358, -1667.5021, 13.2139, 21.7674,234,234, 600); // gs_sultan_2
FrakCars[FRAK_GROVE][4] = AddStaticVehicleEx(560, 2507.5120, -1678.3459, 13.2111, 339.8317,234,234, 600); // gs_sultan_3
FrakCars[FRAK_GROVE][5] = AddStaticVehicleEx(522, 2493.8193, -1685.6548, 13.0816, 331.9830,234,234, 600); // gs_nrg_1
FrakCars[FRAK_GROVE][6] = AddStaticVehicleEx(522, 2492.7583, -1685.1547, 13.0816, 328.6006,234,234, 600); // gs_nrg_2
FrakCars[FRAK_GROVE][7] = AddStaticVehicleEx(522, 2491.5410, -1684.7617, 13.0328, 333.8896,234,234, 600); // gs_nrg_3
FrakCars[FRAK_GROVE][8] = AddStaticVehicleEx(522, 2490.1418, -1684.4767, 13.0153, 333.2024,234,234, 600); // gs_nrg_4
FrakCars[FRAK_GROVE][9] = AddStaticVehicleEx(541, 2476.0457, -1697.8132, 13.1443, 359.1874,234,234, 600); // gs_bullet_1
FrakCars[FRAK_GROVE][10] = AddStaticVehicleEx(541, 2472.0601, -1697.9293, 13.1414, 0.7579,234,234, 600); // gs_bullet_2
FrakCars[FRAK_GROVE][11] = AddStaticVehicleEx(451, 2482.9082, -1683.9436, 13.1213, 90.0109,234,234, 600); // gs_turismo_1
FrakCars[FRAK_GROVE][12] = AddStaticVehicleEx(482, 2469.0544, -1671.6486, 13.5166, 10.8241,234,234, 600); // gs_burrito_1
for(new i;i<20;i++){
if(FrakCars[FRAK_GROVE][i] == INVALID_VEHICLE_ID)continue;
SetVehicleVirtualWorld(FrakCars[FRAK_GROVE][i], 15);
}
return 1;
} -
Sicher, dass die Rotation auch richtig ist? Ich denke Mal du gibst einfach eine falsche Rotation an. Kannst ja Mal versuchen die von 90 auf 270 zu setzen z.B., dann sollte das Fahrzeug in die andere Richtung zeigen.
-
Kann ich morgen mal ausprobieren.
Klingt aber für mich unverständlich da ich die Fahrzeuge via /save im SAMP Debug Modus gespeichert habe.
Eventuell liegt es daran? Wobei.. klingt für mich .. immer noch seltsam. Naja, werd es mal morgen, ausprobieren. -
Alles anzeigen
Tach,
ich hab das Problem das ich gewisse Textdraws nicht "hiden" oder "destroyen" kann.Beispiel:
PlayerTextDrawSetString(playerid, MSGTextdrawPlayer[playerid], "Message"); PlayerTextDrawShow(playerid, MSGTextdrawPlayer[playerid]);
Dann will ich das es dem Spieler halt nicht mehr angezeigt wird, also Hide ich es.
Allerdings wird es trotzdem weiterhin angezeigt.. bis zum nächsten Login sogesehen.PlayerTextDrawHide(playerid, MSGTextdrawPlayer[playerid]);
Was mache ich Falsch?
tachTach,
Alles anzeigenich hab das Problem das ich gewisse Textdraws nicht "hiden" oder "destroyen" kann.
Beispiel:
PlayerTextDrawSetString(playerid, MSGTextdrawPlayer[playerid], "Message"); PlayerTextDrawShow(playerid, MSGTextdrawPlayer[playerid]);
Dann will ich das es dem Spieler halt nicht mehr angezeigt wird, also Hide ich es.
Allerdings wird es trotzdem weiterhin angezeigt.. bis zum nächsten Login sogesehen.PlayerTextDrawHide(playerid, MSGTextdrawPlayer[playerid]);
Was mache ich Falsch?
shalom.
Hat niemand ne idee..? -
Wie deklarierst du die Variable (also das mit new) und wie setzt du den Wert der Variable?
-
Hat niemand ne idee..?
Wird dein Textdraw mehrfach erstellt ? Es wird soweit ich weiß nur das letzte Textdraw gelöscht, heißt wenn du 2x das gleiche Textdraw showst, ist es doppelt da, kann aber nicht doppelt wieder versteckt werden.
Bin mir aber nicht sicher... hatte mal ein ähnliches Problem -
Wie deklarierst du die Variable (also das mit new) und wie setzt du den Wert der Variable?
new PlayerText:MSGTextdrawPlayer[MAX_PLAYERS];Wird dein Textdraw mehrfach erstellt ? Es wird soweit ich weiß nur das letzte Textdraw gelöscht, heißt wenn du 2x das gleiche Textdraw showst, ist es doppelt da, kann aber nicht doppelt wieder versteckt werden.Bin mir aber nicht sicher... hatte mal ein ähnliches Problem
Nein wird es nicht...
Kann ich es theoretisch nochmal aufrufen und dann direkt hiden? würde das was bringen?
-
Lass dir mal die IDs ausgeben des Textdraws. Einmal wenn du ihn erstellst und einmal, wenn du ihn löscht/versteckst.
Sind diese Identisch?
-
