Ich wollte mal Fragen wie ich am besten ein Tutorial erstelle
[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
-
-
@Mar.cel
Nun ja, es gibt ja Verschiedene Möglichkeiten.
Entweder mit Kamera Fahren, Checkpoints Laufen/Fahren, Bot fährt durch die City und erklärt/zeigt dir das wichtigste.Ich mag selbst mag es am liebsten mit Kamera Fahren und Textdraws.
Für die Kamera Fahrten kann ich nur diesen hier ans Herz legen.Mit freundlichen Grüßen.
-
Könnte mir jemand ein Textdraw Ticket System machen für die Supporter ? Also Rechts wie bei D.S.Z oder Breadfish Roleplay da ich das nicht hinkrieg, ich kenne mich nicht mit Textdraws aus da ich mit normalen Commands und weiteres arbeite, und wann Payday ist ganz oben wie bei LyD 0/60 und ja ich kenn mich mit Textdraws aus
-
Könnte mir jemand ein Textdraw Ticket System machen für die Supporter ? Also Rechts wie bei D.S.Z oder Breadfish Roleplay da ich das nicht hinkrieg, ich kenne mich nicht mit Textdraws aus da ich mit normalen Commands und weiteres arbeite, und wann Payday ist ganz oben wie bei LyD 0/60 und ja ich kenn mich mit Textdraws aus
Versuch dich doch mal selbst daran?
Ist nicht so schwer dank schönen Editoren
Hier den, den ich ganz praktisch finde: http://forum.sa-mp.com/showthread.php?t=117851Dann hätten wir noch eine Deluxe Version: http://forum.sa-mp.com/showthread.php?t=543002
Und noch einen...den ich noch nie probiert hab: http://forum.sa-mp.com/showthread.php?t=376758
Gibt aber noch mehr...aber kannst ja mal einfach ein wenig schauen und probieren
PS: Denn ich bezweifle..dass dir jemand das alles designen + skripten wird für nada
-
mein server taucht nicht in der Internet list auf obwohl announce auf 1 ist ....
-
mein server taucht nicht in der Internet list auf obwohl announce auf 1 ist ....
Aktuell ist die Internet List zugleich auch die Hosted List, d.h. du müsstest einen Betrag von ungefähr 18-21 $ monatlich (gibt's verschiedene Anbieter mit unterschiedlichen Preisen) zahlen um auf die Internet bzw. Hosted Liste eingetragen zu werden. -
war das mal nicht Kostenlos die internetliste also hat announce keine funk. mehr
-
Ja, seit einiger Zeit scheint diese aber "verbuggt" zu sein und ein offizieles Statement dazu gibt es noch nicht, soweit ich weiß.
-
-
Bräuchte mal eben eine kleine Hilfe wie ich mehrere Leute in einen String packe die z.B Online sind und einer Fraktion angehören.
Bspw. 4 Leute pro Reihe:
"Peter - ID: 4, Olaf - ID: 6, Ralf - ID: 39, Dieter - ID: 2"
"Jeff - ID 3, Walter - ID 9" <- Ab hier hört es auf, weil kein weiterer dieser Fraktion o.Ä angehörtWäre dankbar, wenn mir dabei jemand helfen kann, da ich noch nie mit sowas gearbeitet habe.
-
1. ...wie meinst du das in einen String packen..für einen Dialog?
2. Wie prüfst du in welcher Fraktion jemand ist...
3. Oder meinst du einfach als SendClientMessage..dafür brauchst du die nicht in einen String packen
-
Vielleicht meint er ja sowas in der Art:
CMD:member(playerid,params[])
{
new s_text[1000];
new temp[95];
new count;for(new i=0,j=GetPlayerPoolSize(); i<=j;i++)
{
if(!IsPlayerConnected(i) || !InFraktion[i]) //deine Variable
continue;format(temp, sizeof(temp), "{FF0000}%s", GetName(i));
strcat(s_text, temp, sizeof s_text);
count++;
}if(count != 0)
{
ShowPlayerDialog(playerid, D_Mitglieder, DIALOG_STYLE_MSGBOX, "Mitglieder", s_text, "Ok", "");
}
else
{
SendClientMessage(playerid, -1, "Es sind keine Fraktionsmitglieder online.");
}
return 1;
}Kann's nicht compilen, sag mir bescheid wenn du Probleme hast
-
1. ...wie meinst du das in einen String packen..für einen Dialog?
2. Wie prüfst du in welcher Fraktion jemand ist...
3. Oder meinst du einfach als SendClientMessage..dafür brauchst du die nicht in einen String packen
1) Für eine Text-Message.
2) Spieler[playerid][pFraktion]
3) Ja, ich habs zB momentan so:C
Alles anzeigenCMD:members(playerid) { new string[128]; if(Spieler[playerid][pFraktion] > 0) { SendClientMessage(playerid, COLOR_GREEN, "* Mitglieder online:"); for(new i=0;i<GetMaxPlayers();i++) { if(IsLoggedIn(i)) { if(Spieler[i][pFraktion] == Spieler[playerid][pFraktion]) { format(string, sizeof(string), "%s %s (Rang %d)", GetRankName(Spieler[i][pFraktion], Spieler[i][pRank]), GetName(i), Spieler[i][pRank]); SendClientMessage(playerid, COLOR_GREY, string); } } } } return 1; }
Das Problem ist jetzt aber, sagen wir mal es sind 20 Mitglieder on, dann wird der Chat schön zugespammt ..
Ich will das dann in einer Reihe zB maximal 4 Leute stehen und dann in die nächste Text-Nachricht gewechselt wird.
-
-
Es ist ein Dialog @hav0K~
Nein, wo ist das ein Dialog? xd
Ich will es in einer Nachricht haben. -
Habe mich auf den Befehl den ich dir geschickt habe bezogen :). Dort wird jeder Name untereinander gelistet.
Kannst das ja ganz easy zu einer Nachricht formatieren, einfach ShowPlayerDialog mit SendClientMessage ersetzen. -
Ich wills aber nicht im Dialog
-
Sagmal weiß einer von euch ob es eine Include gibt, wo es eine art GetVehicleNumberPlate(vehicleid); gab?
-
Gut, habe mal deinen Befehl bisschen aufgepeppt
C
Alles anzeigenCMD:members(playerid) { if(!Spieler[playerid][pFraktion]) return SendClientMessage(playerid, COLOR_RED, "* Du befindest dich in keiner Fraktion!"); const MAX_MEMBER = 3; //Mach mal hier lieber nur 3..sonst könnte die Zeile zu lang werden new string[(MAX_PLAYER_NAME + 16 + 10 + 2) * MAX_MEMBER],c; SendClientMessage(playerid, COLOR_GREEN, "* Mitglieder online:"); for(new i=GetPlayerPoolSize(); i != -1; i--) { if(!IsLoggedIn(i) || Spieler[i][pFraktion] != Spieler[playerid][pFraktion]) continue; if(c++ < MAX_MEMBER) { format(string,sizeof(string),"%s%s %s (Rang: %d) | ",string,GetRankName(Spieler[i][pFraktion], Spieler[i][pRank]), GetName(i), Spieler[i][pRank]); } else { SendClientMessage(playerid,COLOR_GREY,string); string=""; //String Reset (1000x schneller als strdel xD) c=0; } } if(c) SendClientMessage(playerid,COLOR_GREY,string); return 1; }
Probiers mal aus, war zu faul es zu testen//Edit:
@256:Hier gerade mal aus dem Kopf geschrieben:
C
Alles anzeigen/* SA:MP Include GetVehicleNumberPlate * * (c) by Kaliber, 2016 * */ #if !defined _samp_included #include <a_samp> #endif #if defined _samp_plate_ex #endinput #endif #define _samp_plate_ex native __SetVehicleNumberPlate(vehicleid, numberplate[]) = SetVehicleNumberPlate; stock _SetVehicleNumberPlate(vehicleid, numberplate[]) { if(strlen(numberplate) > 32) return 0; //Um Schaden zu vermeiden! setproperty(.value=50+vehicleid,.string=numberplate); return __SetVehicleNumberPlate(vehicleid, numberplate); } #if defined _ALS_SetVehicleNumberPlate #undef SetVehicleNumberPlate #else #define _ALS_SetVehicleNumberPlate #endif #define SetVehicleNumberPlate _SetVehicleNumberPlate /* native GetVehicleNumberPlate(vehicleid); */ stock GetVehicleNumberPlate(vehicleid) { new plate[32]; getproperty(.value=50+vehicleid,.string=plate); strunpack(plate,plate,sizeof(plate)); return plate; }
Nutzung:
new veh;
SetVehicleNumberPlate(veh,"Hallo test");
printf("Nummernschild: %s",GetVehicleNumberPlate(veh)); //Gibt "Hallo test" aus :) -
Hier gerade mal aus dem Kopf geschrieben:
DestroyVehicle sollte ebenfalls gehookt werden.
Erstellt man beispielsweise Fahrzeug ID 1, setzt dessen Nummernschild zu "Hallo", löscht das Fahrzeug und erstellt ein neues Fahrzeug (wieder ID 1), ohne dessen Nummernschild zu setzen (Standard Nummernschild), dann wird dennoch "Hallo" zurück gegeben.Allgemein werden die Standardnummernschilder gar nicht erkannt. CreateVehicle (etc) zu hooken und dort direkt ein eigenes Random-Nummernschild zu setzen wäre am besten.