Alles anzeigen
Du hast dich verrechnet ![]()
So muss es sein:
3x : (x-5) = 8 | * (x-5)
3x = 8 * (x-5)
3x = 8x - 40 | -3x + 40
40 = 5x | :5
x = 8
mfg. ![]()
Alles anzeigen
Du hast dich verrechnet ![]()
So muss es sein:
3x : (x-5) = 8 | * (x-5)
3x = 8 * (x-5)
3x = 8x - 40 | -3x + 40
40 = 5x | :5
x = 8
mfg. ![]()
Ich habe mal gerade einen aus Spaß geschrieben, sollte funktionieren, viel Spaß: http://kaliber.bplaced.net/
mfg. ![]()
Hey, stehe grad echt aufm Schlauch..
Wie kann ich Variablen returnen?
Immer wenn ich die returnen will kommt ingame ein Wert von 11, obwohl mir als der Wert der Variable in der Console 81 oder Ähnliches angezeigt wird.
Könnt ihr mir helfen?
Mich würde interessieren, wie dein Code aussieht...man kann das z.B. so machen:
printf("%d",Test()); //Würde 81 printen
Als Funktion:
stock Test() return 81;
//oder
Test() return 81;
oder als Makro:
#define Test() 81
mfg. ![]()
Und wie kann ich die benutzen, beispiel wäre nett
Nun, ganz einfach so:
public OnPlayerUpdate(playerid) {
new Keys,ud,lr;
GetPlayerKeys(playerid,Keys,ud,lr);
if(ud == KEY_UP) SendClientMessage(playerid, -1, "UP");
else if(ud == KEY_DOWN) SendClientMessage(playerid, -1, "DOWN");
if(lr == KEY_LEFT) SendClientMessage(playerid, -1, "LEFT");
else if(lr == KEY_RIGHT) SendClientMessage(playerid, -1, "RIGHT");
return 1;
}
mfg. ![]()
Bei deinem format in der 4. Zeile, es gibt kein %e im format, dass muss %i oder %d heißen ![]()
mfg. ![]()
okay also spart es nur ressourcen wenn ich das eichtig verstehe?
Ressourcen ist so ein allgemeiner Begriff, es spart Speicher ![]()
mfg. ![]()
Ich danke dir für den hinweis, aber was genau bringt das char?
Kannst dir meinen Beitrag dazu mal durchlesen: http://forum.sa-mp.de/gta-mult…optimierung-6#post1428034
mfg. ![]()
@Music4You:
Das würde zu Fehlern kommen, wenn der Spieler im Dialog ist und gleichzeitig wer anders im Dialog ist und dann würde der andere die ID vom anderen übernehmen ![]()
Deshalb muss man das nochmal Spielerspezifisch machen, sprich so:
new nameid[MAX_PLAYERS char];//oben im script.
ocmd:kick(playerid,params[])
{
new pID, reason[128], string[128];
if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,Red,"Eingabe: /kick [ID] [Grund]");
format(string,sizeof(string),"%s hat %s gekickt! Grund: %s",SpielerName(playerid),SpielerName(pID),reason);
SendClientMessageToAll(Red,string);
ShowPlayerDialog(playerid,DIALOG_KICK,DIALOG_STYLE_MSGBOX,"Kick","Möchtest du den Spieler wirklich kicken?","Ja","Nein");
nameid{playerid}=pID;
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_KICK) {
if(!response) return SendClientMessage(playerid,Red,"Du hast den Vorgang abgebrochen!"),nameid{playerid}=0;
return Kick(nameid{playerid});
}
return 1;
}
mfg. ![]()
Schreibs so:
ocmd:gotocoords(playerid, params[]) {
if(!IsPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,Hellrot,"* Du bist dazu nicht befugt.");
new Float:Pos[3],string[128];
if(sscanf(params,"fff",Pos[0],Pos[1],Pos[2]))return SendClientMessage(playerid,Grau,"FEHLER: /gotocoords [Koordinaten]");
if(IsPlayerInAnyVehicle(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid),Pos[0],Pos[1],Pos[2]);
else SetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
format(string,sizeof(string),"* Du hast dich zu den Koordinaten %i %i %i teleportiert.",Pos[0],Pos[1],Pos[2]);
SendClientMessage(playerid,Gelb,string);
format(string,sizeof(string),"%s hat den Befehl /gotocoords benutzt. (Nur zur Info!)",SpielerName(playerid));
print(string);
return 1;
}
mfg. ![]()
also muss ich if(sscanf(params,"fff",Position_X,Position_Y,Position_Z))return .... machen?
Und bei den new's:
new Floatosition_X, .... ??
Genau ![]()
i = Integer (32Bit Zahl also eine Ganze Zahl)
du musst f verwenden für Float, Kommastellenzahl ![]()
mfg. ![]()
Ja, diese kleine Operation dauert halt keine ms, sondern nur ns...
Mach eine Schleife mit einem Wert von 1000 dazwischen oder so und du wirst merken, er gibt dir ms aus ![]()
mfg. ![]()
Aber sollte doch gleich sien oder?
Also, folgendes:
AllowPlayerTeleport(playerid,1); // Teleport wird erlaub oder?
Nein nein, das hat da nichts zu suchen ![]()
Unter OnGameModeInit() schreibe mal folgendes rein:
AllowAdminTeleport(1);
So und jetzt loggst du dich inGame als Rcon-Admin ein und dann kannst du dich direkt porten ![]()
mfg. ![]()
KEY_CROUCH ist nur die Taste H, wenn du dich in einem Auto befindest und das nicht geändert hast in deinen GTA Einstellungen. Wenn du zu Fuß unterwegs bist, musst du die Taste C drücken, soweit du das nicht geändert hast ![]()
Den Code kannst du auch so schreiben:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
if(newkeys & KEY_CROUCH) {
if(IsPlayerInRangeOfPoint(playerid,3.0,825.70001, 849.29999, 13.2)) return MoveObject(PaintAreaGate, 825.70001, 849.29999, 13.2-10, 3.0),SetTimer("PaintAreaGate1",5000,0);
}
return 1;
}
forward PaintAreaGate1();
public PaintAreaGate1() return MoveObject(PaintAreaGate, 825.70001, 849.29999, 13.2+10, 3.0);
Die Übergabe eines Parameters durch einen Timer wie "playerid" ist total nutzlos, da du diesen ja nicht in der Funktion PaintAreaGate1 verwendest ![]()
mfg. ![]()
Ja, das Funktioniert und zwar so:
Um dem Spieler das zu erlauben nutzt du die Funktion AllowPlayerTeleport
und um den Spieler zu dem Marker zu teleportieren nutzt du OnPlayerClickMap
mfg. ![]()
Doch wenn ich in diesem Befehl hier <= benutze wird die SendClientMessage nicht gesendet..!`?!? Und wenn ich nur < benutze funktioniert alles!?! Und das letzte Fahrzeug wird auch gelöscht! also funktioniert < bei mir wie eigendlich <= funktionieren sollte?! und bei <= wird alles unter der zeile irwie nicht mehr gelesen... warum funktioniert das mit <= nicht? (Benutze UMP 0.3 e falls das wichtig sein sollte..)
Das liegt an dem Array von PlayerVehicle.
Ganz einfach Arrays werden so erstellt:
new test[3];
test[0] = 1;
test[1] = 2;
test[2] = 3;
test[3] = 4; //Das würde nicht funktionieren, da der Array nur auf 3 Cells begrenzt ist, also können wir nicht 4 nutzen (0,1,2 = 3 | 0,1,2,3 = 4)
Bei deiner Schleife ist das das selbe, nur das hier kein Fehler während des Compilierens kommt, sondern erst während die Schleife ausgeführt wird.
<= würde ja bedeuten, dass wir (jetzt auf mein Beispiel bezogen) in die 4. Cell was schreiben wollen, obwohl wir nur 3 haben.
Deshalb < damit wir nur 0,1,2 beschreiben und nicht 0,1,2,3 ![]()
mfg. ![]()
4 Errors.
Er meint natürlich auch, du sollst das schreiben:
new firstperson[MAX_PLAYERS];
mfg. ![]()
Oder man schreibt es kürzer einfach so:
stock SpamChat(playerid,dest) {
switch(dest) {
case 0: for(new i; i<20; i++) SendClientMessage(playerid,-1,"");
case 1: for(new i; i<20; i++) SendClientMessageToAll(-1,"");
}
return 1;
}
mfg. ![]()