Die funktion darfst du nur in dem Bereich vom
- if(dialogid==DIALOG_CREATEFRACTION_NAME)
- {
- new string[256];
- if(response)
- {
- //Hier rein muss das mit dem i=...
Die funktion darfst du nur in dem Bereich vom
Das schon ok so.
Es bedeutet ja quasi, dass du 25 Fraktionen erstellen kannst auf dem Server.
Um die jeweilige Fraktionsid rauszubekommen musst du einfach ermitteln, welche frei ist, z.B. so:
stock GetFreeFrakID()
{
for(new i; i<sizeof(cfrak_info); i++)
{
if(cfrak_info[i][f_name][0] == EOS) return i;
}
return -1;
}
//Wichtig dass du beim löschen einer Fraktion folgendes machst:
strdel(cfrak_info[i][f_name],0,128);
//Und dann kann dein Befehl so aussehen:
format(string,sizeof(string),"%s",inputtext);
new i = GetFreeFrakID();
if(i == -1) return SendClientMessage(playerid,-1,"* Es wurden bereits 25 Fraktionen erstellt!");
format(cfrak_info[i][f_name],128, string);
format(string,sizeof(string),"Sie erstellen die Fraktion {FF7700}%s{FFFFFF}", cfrak_info[i][f_name]);
SCM(playerid,COLOR_YELLOW,string);
cfrak_info[23][f_name] = string;
Musst das z.B. so zuweisen:
format(cfrak_info[23][f_name],32, string); //Bzw angeben wie groß cfrak_info[x][f_name] ist :)
Wenn du dynamic Objects verwendest, dann auch die Funktion AttachDynamicObject ![]()
str[75]
Dein str ist zu klein, setz das mal auf [60 + MAX_PLAYER_NAME + 32] ![]()
Um das mal kurz zu sagen, das sieht nicht gut aus mit dem Namen, wenn der sich permanent ändert ![]()
Da man immer einen links Klick machen muss, damit man die Veränderung des Namens sieht, das geht nicht automatisch ![]()
Hier ein kleines Beispiel:
//Oben im Skript
#define SERVER_NAME_INTERVAL 500
//Ruf folgendes unter OnGameModeInitAuf
SetTimerEx("changeServerName", SERVER_NAME_INTERVAL, 0, "i", 0);
//Dann iwo im Skript
forward changeServerName(x);
public changeServerName(x)
{
static const s_name[]="[RLR] RedLife Reallife";
new tmp[8 + sizeof(s_name) + 1];
strmid(tmp,s_name,0,x,sizeof(s_name));
format(tmp,sizeof tmp,"hostname %s",tmp);
SendRconCommand(tmp);
if(x == sizeof(s_name)-1) x=-1;
SetTimerEx("changeServerName", SERVER_NAME_INTERVAL, 0, "i", ++x);
}
Alles anzeigen
Hab das per Hand fix gemacht....Daten in ein Filterscript und das schnell neugeladen...
Die Achsen X, Y & Z stehen ja für was
Das ist sowas wie rechts, vorne und oben ![]()
So kann man das relativ gut einstellen ![]()
Hier hab mir mal die Zeit genommen, die Koords sollten so sein:
AttachObjectToPlayer(testobjt, playerid, 0,0.5,-0.5, 0,0,0);
mfg. ![]()
AttachObjectToPlayer(1409, playerid, 0.98,-0.10,-0.60,0.0,-87.0,304.0);
Du musst hier folgendes schreiben:
AttachObjectToPlayer(testobjt, playerid, 0.98,-0.10,-0.60,0.0,-87.0,304.0);
Ein Salt muss statisch sein logischerweise ![]()
Kannst den doch nicht immer wieder neu generieren ![]()
Nein ich meine Rennen im Sinne von Sprinten
Was redest du....
Mit Animationen kann man sich nicht bewegen...mit der Carry Special Action kann man nur laufen...
kann ich die BoneID '5' lassen?
Da gibts keine bones...nur relative Koordinaten...
Der Mittelpunkt deines Spielers ist 0,0,0...musst halt dann was erhöhen damit die vor die ist..
Du brauchst eine Special Action..und zwar Carry.
und beim Attachen solltest du AttachObjectToPlayer verwenden ![]()
The Mentalist
Scrubs
Dr. House
Numb3rs
Alle hassen Chris
Family Guy
American Dad
![]()
Wichtig wäre wie du die Farbe COLOR_BRIGHTRED definiert hast ![]()
Die Zeile ist zu lang...das liegt am Compiler.
Teil sie auf..nutze 2 format...
format(string,sizeof string,"balbalbabsdjbwfj");
format(string,sizeof string,"%sbalabasns",string); //So kannst du das hinten dran hängen
Du musst das Bild als background-image z.B. von einem Div oder Span einstellen.
Ein google Treffer: http://www.css4you.de/background-image.html
Kannst aber natürlich gerne auch selbst nach anderen Beispielen googlen ![]()
Machs mal so:
if(newkeys & KEY_JUMP)
{
static const skins[] = {1, 2, 3, 4, 5, 6, 7, 8, 18, 19}; //Hier kannst du alle Skinids reinschreiben, die zu wählen sind.
static idx[MAX_PLAYERS char];
SetPlayerSkin(playerid, skins[idx{playerid}]);
idx{playerid} = (idx{playerid} == sizeof(skins)-1)?0:idx{playerid}+1;
return 1;
}
Mit sscanf kannste das nicht machen...nutz einfach die spielerid oder den ganzen namen ![]()
Das funktioniert auch, nur wie kann ich das umändern das dass auch mit weniger Buchstaben/Zahlen funktioniert?
Gar nicht...was machst du denn wenn es einen [LnD]JustMe.77 gibt und einen JustMe gibt...
Dann haste doch n Problem ![]()
Um das Objekt vorwärts bewegen zu lassen musste das so machen:
stock MoveObjectForward(obj, Float:distance, Float:speed)
{
new Float:x,Float:y,Float:z,Float:r;
GetObjectPos(obj, x,y,z),GetObjectRot(obj, r,r,r);
x += distance * floatsin(-r, degrees);
y += distance * floatcos(-r, degrees);
MoveObject(obj, x, y, z, speed);
return 1;
}
//Und die Methode dann in deinem Fall so nutzen:
MoveObjectForward(schiff[0], 10.0, 7.0); //Der Speed von 20.0 ist ziemlich schnell
MoveObjectForward(schiff[1], 10.0, 7.0);
MoveObjectForward(schiff[2], 10.0, 7.0);
Alles anzeigen