Suche Holzstabel die man in der Hand tragen kann
Da wäre dieser Thread eigentlich richtig: http://forum.sa-mp.de/gta-mult…suche-objektid-textur-134
Ich würde dir modelid 1463 empfehlen ![]()
mfg. ![]()
Suche Holzstabel die man in der Hand tragen kann
Da wäre dieser Thread eigentlich richtig: http://forum.sa-mp.de/gta-mult…suche-objektid-textur-134
Ich würde dir modelid 1463 empfehlen ![]()
mfg. ![]()
ich möchte das ja so haben das da kein mensch zu sehen ist nur das samp multyplayer das sehen beim einlogen
Dann setz den Spieler in seine eigene Virtuelle Welt: SetPlayerVirtualWorld(playerid, playerid+1);
Dann sieht man nur den Hintergrund ![]()
Er möchte es aber umbedingt mit ein Bild machen. http://forum.sa-mp.com/showthread.php?t=274064
Das bezweifle ich ![]()
Das ist so nicht möglich, es gibt zwar ein Plugin mit dem das möglich wäre, aber ich glaube du meinst etwas anderes.
Du kannst mit SetPlayerCameraPos und SetPlayerCameraLookAt den Spieler zwingen genau dieses Bild quasi zu haben, welches du möchtest.
Hintergrund Bilder (inform von TextDraws also 2D) nennt man Sprites, kannst du ja mal in Verbindung mit SA:MP googlen ![]()
mfg. ![]()
OnPlayerCommandText(playerid,"/housecontrol sell");
Mit zcmd müsste es so klappen:
cmd_housecontrol(playerid, "sell");
mfg. ![]()
Also im Wiki kannst du doch nachlesen, was die einzelnen Attribute bedeuten, zudem ist dort ein Beispiel.
Aber wenn du es konkreter haben willst, dann hier ein weiteres:
new obj = CreateObject(7606,0,0,3,0,0,0),tmp[128];
format(tmp,sizeof tmp, "{FF0000}Server: {00BFFF}German Reallife\n\n\
{FF0000}Ts³: {00BFFF}127.0.0.1\n\n\
{FF0000}Forum: {00BFFF}http://www.gidf.de");
SetObjectMaterialText(obj,tmp,0,OBJECT_MATERIAL_SIZE_256x128,"Arial",24,1,-1,0xFF000000);
Sieht dann am Ende so aus:
Du kannst das auf alle Objekte anwenden, musst halt immer den Index beachten.
Wenn du es kleiner Skalieren willst, nimm eine andere Schriftgröße oder zentrier es dann anders...schau dir halt die einzelnen Attribute nochmal genau an und les dir alles in Ruhe durch ![]()
mfg. ![]()
abe da noch eine frage wie kann ich es machen das an dem roller ein text ist ach ja es sin 12 roller das fukt nur bei 1 roller
Naja...und wo ist das Problem? ![]()
Du kannst es doch einfach so machen:
//Für 4 Autos:
SetVehicleNumberPlate(veh1,"German Reallife");
SetVehicleNumberPlate(veh2,"German Reallife");
SetVehicleNumberPlate(veh3,"German Reallife");
SetVehicleNumberPlate(veh4,"German Reallife");
Oder du machst es in einem Array bzw in einer Schleife:
for(new i; i<sizeof roller; i++) SetVehicleNumberPlate(roller[i],"German Reallife");
PS: Eventuell Auto noch respawnen lassen, damit das Nummernschild wirklich gesetzt wird ![]()
teilnehmen eine Variable zuweisen.
Genau das habe ich ihm doch auch vorgeschlagen...aber er hat sich irgendwie für die andere Variante entschieden ![]()
Und wie kann ich diese durchzählen ?
Naja, einfach so:
new ids[MAX_PLAYERS],counter;
for(new i,l=GetPlayerPoolSize()+1; i<l; i++)
{
if(IsPlayerInRangeOfPoint(playerid,5.0,x,y,z)) //Hier halt deine Position angeben
{
ids[counter++] = i;
}
}
//Naja und counter hat jetzt die Anzahl der Personen die da sind und in ids sind die Playerids aufgelistet:
//Wenn du die nun alle an eine Position setzen willst, machst du das z.B. so:
for(new i; i<counter; i++)
{
SetPlayerPos(ids[i],x,y,z); //Hier setzt du dann alle Spieler die da standen an eine gewisse Position
}
mfg. ![]()
Kann mir jemand ein beispiel für eine Abfrage schicken ob sich drei leute an einen gewissen ort befinden wenn Sie einen Befehl eingebeN ?
Naja...da gibt es mehrere Möglichkeiten das zu realisieren.
Entweder du lässt sie einen Command eingeben, dann setzt du einen boolean für die playerid auf true und freezt sie.
Dann kannst du ja ganz einfach dadurch loopen und schauen wer alles an dem Ort ist und noch connected ist.
Oder du machst einfach eine Schleife durch alle Spieler und schaust ob diese Spieler an diesem Punkt sind.
/sit und möchte ihn in einem Timer benutzen
Schau dir am besten nochmal den Wiki eintrag dazu an, besonders den "time" Parameter: ApplyAnimation
Für sit selbst gibt es mehrere Animationen, ich geb dir einfach mal 2:
"BEACH", "ParkSit_M_loop"
//oder
"PED","SEAT_IDLE"
mfg. ![]()
Jop mit N ging es danke
Ja, habe es mal im Standard Post ergänzt, was so die häufigsten Keys sind ![]()
Nutze dafür folgende Funktion:
stock GetIDByName(const name[])
{
new n[MAX_PLAYER_NAME];
for(new i,l=GetPlayerPoolSize()+1; i<l; i++) if(GetPlayerName(i,n,MAX_PLAYER_NAME) && !strcmp(n,name)) return i;
return -1;
}
//Dann in deinem Dialog:
new id = GetIDByName(inputtext);
if(id == -1) return SendClientMessage(playerid,-1,"Dieser Admin ist nicht mehr online!");
mfg. ![]()
Also ich kenne das Problem mit dem sscanf Plugin nicht ^^, deshalb bin ich davon ziemlich überrascht.
Ich auch nicht...aber in solchen Fällen verwende ich es auch nie ![]()
Deshalb...war das nur vermutet...was da passieren kann ![]()
Das überschreiben wäre nicht wirklich denkbar und zwar wird der Speixher dynamisch bei localen variablen frei gegeben jedoch nur die große , welche auch beansprucht wird,
Beim Stack (Lokalen Variablen) kann man das NULL Byte überschreiben...es folgt zwar ein Runtime Error, dennoch geht es:
#include <a_samp>
main() {
new test[2];
func(test);
print(test); //->Gibt Hallo aus
}
func(...) {
setarg(0,0,'H');
setarg(0,1,'a');
setarg(0,2,'l');
setarg(0,3,'l');
setarg(0,4,'o');
}
Bei globalen Variablen wird es begrenzt, sprich da kommt nur Ha raus...ohne Error ![]()
mfg. ![]()
Mal kurz nebenbei, es ist total redundant hier sscanf zu nutzen, schreibe es einfach so:
if(strlen(params) > 64)return SendClientMessageEx(playerid, COLOR_WHITE, "%d Zeichen.", strlen(params));
//Und text = params...
Doch du kannst keine 128 Zeichen in einen string packen der auf 64 Zeichen limitiert ist
Nun, ich weiß nicht genau wie das verarbeitet ist...aber es kann doch gut sein, dass das NULL Byte überschrieben wird...somit kann der String dadurch natürlich größer werden...
Naja, wie dem auch, es ist in der Doku beschrieben, dass man sscanf nicht nutzen soll für diesen Fall, also mach es einfach nur so ![]()
Leere Cells gibts nicht. Die werden eins nach dem anderen aus der Datenbank ausgelesen
Ich bin von deinem Beispiel ausgegangen und da ist cell 0 leer ![]()
aber ich möchte dem ersten Array keine feste Größe geben. Geht das nicht?
In dieser Sprache leider nicht direkt.
Du müsstest ein Plugin verwenden um dies tun zu können: http://forum.sa-mp.com/showthread.php?t=451381
mfg. ![]()
Andere Lösung?
Nun, da gibt es mehrere, das kommt auf die Deklaration an.
Angenommen du machst es so:
static const array[][] = {
"String1",
"String2",
"String3"
};
printf("Anzahl der Strings: %d",sizeof array); //->Gibt 3 aus
Das was du aber willst, ist viel mehr eine Liste an Elementen.
new string[30][128];
string[0] = "String1";
string[1] = "String2";
string[3] = "String4";
So jetzt können wir nicht mehr mit sizeof oder strlen arbeiten.
Zusätzliches Problem ist, dass Lücken entstehen können wie z.B. in diesem Fall cell 2 leer ist.
Lösung ist eine Funktion:
stock CountStrings(const str[][],len=sizeof str)
{
new counter;
for(new i; i<len; i++)
{
switch(str[i][0])
{
case '\0','\1': continue;
default: counter++;
}
}
return counter;
}
//Nutzen können wir sie in unserem Beispiel so:
new string[30][128];
string[0] = "String1";
string[1] = "String2";
string[3] = "String4";
printf("Anzahl der Strings: %d",CountStrings(string)); //->3
mfg. ![]()
Kannst du mir das Bitte erleutern, Ich möchte das wenn man Enter drückt das die die Animation die man ausführt aufhört.
//Edit:
Obwohl nimm lieber einen Befehl dafür:
//Irgendein Command:
if(GetPlayerAnimationIndex(playerid)) ClearAnimations(playerid);
Da du sonst die Animation selbst abbrichst die ein Spieler ausführen würde...
Okay könnte mir das einer vor machen bin leider Neu
Hast du mal auf den Link geklickt? ![]()
Da ist doch sogar ein Beispiel und alle Attribute sind aufgelistet...
Wenn du etwas nicht verstehst, frag bitte expliziter ![]()
Wie knn ich scripten das wenn ein Spieler was sagt das über den Namen das gesagte erscheint
Mit dieser Funktion: SetPlayerChatBubble
PS: Man kann die eigene ChatBubble nicht sehen...dafür müsstest du ein 3DTextLabel verwenden und über dem Spieler attachen ![]()