Ja,
Aber kann es da nicht sein
Das dann ein Terror die Falsche bombe hochjagt und nicht seine eigene??
Dann machst du noch eine Variable in der die VehicleID von dem Spieler gespeichert wird, und fragst bei dem klick die auch noch ab.
Ja,
Aber kann es da nicht sein
Das dann ein Terror die Falsche bombe hochjagt und nicht seine eigene??
Dann machst du noch eine Variable in der die VehicleID von dem Spieler gespeichert wird, und fragst bei dem klick die auch noch ab.
Indirekt...
Er will ja blos das Spieler auf seinen Plätzen sichtbar sind.
Da brauch er keinen Spieler spectaten.
Da müsste eigentlich TogglePlayerSpectating ausreichen.
Und dann evtl. mit SetPlayerCameraPos ne Position setzen...
Nein er muss weder mit TogglePlayerSpectating noch mit PlayerSpectatePlayer arbeiten. TogglePlayerSpectating aktiviert nur das Spectating.
Er muss nur den Spieler in die Nähe von der Kamera setzten.
Note: Players stream out if they are more than 150 meters away (see server.cfg - stream_distance)
Du machst eine Abfrage, ob derjenige in der Fraktion/Team Terror ist.
Kommt halt darauf wie du die Teams zuweist.
Er will das auf die Position wo die Kamera zeigt die Leute zu sehen sind.
Du musst den Spieler der die Live Ansicht sehen soll auch in die nähe der Kamera Position setzten, weil sonst die Spieler nicht gestreamt werden.
gr. KleinerTeufel
Du erstellst einen Befehl in dem du eine Variable auf true setzt.
Drückt er jetzt die Maustaste und die Variable ist auf true, kannst du ein Timer starten, der die Bombe dann zündet.
Machen kannst du das ganze mit CreateExplosion.
Gr. KleinerTeufel
Hallo,
mein Problem liegt darin das ich eine Variable habe: dialog_info[10][512]
Und unter OnDialogResponse formatiere ich diese Variable:
new dialog_line = DialogState[line];
format(dialog_info[dialog_line], sizeof(dialog_info), "%s", inputtext);
Das Problem ist jetzt das in der Variable dialog_info nur die ersten 9 Zeichen von inputtext übernommen werden.
Ich habe mir mal inputtext und dialog_info im chat ausgeben lassen:
inputtext = 0123456789
dialog_info = 012345678
Ich hoffe ihr könnt mir helfen und sagen woran es liegt.
Danke
MFG KleinerTeufel
Alles anzeigenHabe noch nie mit einer Random function gearbeitet wie geht das ?
carColorTimer[playerid]
was ist das ?
Ja sry leute muss alles checken sonst bringts mir nicht viel
carColorTimer[playerid] ist die Variable in der der Timer gespeichert ist.
Random - SA-MP Wiki
Du hast die Fahrzeuge denke ich mal im Script erstellt. AddStaticVehicle AddStaticVehicleEx oder CreateVehicle.
Jetzt gehts du hin und fügst die Fahrzeuge die zu der Fraktion gehören einer Variable hinzu.
new fCars[30];
fCars[0] = AddStaticVehicle(...)
fCars[1] = AddStaticVehicle(...)
fCars[2] = AddStaticVehicle(...)
Und dann am besten mit einer schleife allen Fraktions Cars die gewünschte HP geben.
for(new i = 0; i < sizeof(fCars); i++)
{
SetVehicleHealth(fCars[i], 9000);
}
Kleine Frage noch, muss ich jenachdem wieviele Farben ich will auch soviele Timer erstellen ?
Nein, mache einfach ein Random in die Function mit rein. Die dann aus zufall eine Farbe auswählt.
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmd, "/corpse", true))
{
if(PlayerInfo[playerid][pJob] == 36)
{
new str[240], string[512];
for(new i2 = 0; i2 < MAX_BESTATTER; i2++)
{
new Float:X1 = BestatterInfo[i2][Todx], Float:X2 = BestatterInfo[i2][Tody], Float:X3 = BestatterInfo[i2][Todz];
if(IsPlayerInRangeOfPoint(playerid, 200.0, X1, X2, X3) && BestatterInfo[i2][Angenommen] == 0)
{
format(str, sizeof(str), "Verstorbener: %s\n", BestatterInfo[i2][Opfer]);
strcat(string, str);
}
else
{
format(str, sizeof(str), "Slot nicht in Nutzung\n");
strcat(string, str);
}
}
ShowPlayerDialog(playerid, DIALOG_CORPSE, DIALOG_STYLE_LIST, "Aufträge von Pixel Roleplay", string, "Auswählen", "Beenden");
return 1;
}
return SendClientMessage(playerid, WHITE, "Du bist kein Bestatter!");
}
return 0;
}
Dann mach es halt so das der Timer nur dann ausgeführt wird wenn er in einem Fahrzeug ist.
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid);
carColorTimer[playerid] = SetTimerEx("publicname", 2000, true, "d", vehicleid);
}
if(oldstate == PLAYER_STATE_DRIVER)
{
KillTimer(carColorTimer[playerid]);
}
return 1;
}
Wozu ein Timer verwenden wenn es OnPlayerTakeDamage gibt?
ocmd:godmode(playerid, params[])
{
if(IsPlayerAdmin(playerid))
{
if(GetPVarInt(playerid, "GodModeEnagle") == 0)
{
SetPVarInt(playerid, "GodModeEnable", 1);
}
else
{
SetPVarInt(playerid, "GodModeEnable", 0);
}
return 1;
}
return 1;
}
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
if(GetPVarInt(playerid, "GodModeEnable") == 1)
{
SetPlayerHealth(playerid, 100);
return 1;
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmd,"/corpse",true))
{
if(PlayerInfo[playerid][pJob] == 36)
{
for(new i2 = 0; i2 < MAX_BESTATTER; i2++)
{
new Float:X1 = BestatterInfo[i2][Todx], Float:X2 = BestatterInfo[i2][Tody], Float:X3 = BestatterInfo[i2][Todz], str[240];
if(IsPlayerInRangeOfPoint(playerid,200.0,X1,X2,X3) && BestatterInfo[i2][Angenommen] == 0)
{
format(str,sizeof(str),"Verstorbener: %s\n",BestatterInfo[i2][Opfer]);
strcat(str, string);
}
else
{
format(str,sizeof(str),"Slot nicht in Nutzung\n");
strcat(str, string);
}
}
ShowPlayerDialog(playerid,DIALOG_CORPSE,DIALOG_STYLE_LIST,"Aufträge von Pixel Roleplay",string,"Auswählen","Beenden");
return 1;
}
return SendClientMessage(playerid,WHITE,"Du bist kein Bestatter!");
}
return 0;
}
Erstelle doch einfach einen Timer der jede 2 Sekunden ausgeführt wird und gebe die vehicleid vom dem Fahrzeug mit.
SetTimerEx("publicname", 2000, true, "d", vehicleid)
Vielleicht hast du zweimal die selbe ID für den Dialog bei #define genutzt?
new string[128];
format(string,sizeof(string),"Werbung: %s ",inputtext); //du hast mit strval (inputtext) das ganze in ein integer(Zahl) umgewandelt.
SendClientMessageToAll(WERBUNG,string);
SetTimerEx("Werbungtimer",10000,0,"i",playerid);
GivePlayerMoney(playerid,-50);
Werbung[playerid] = 1;
Du kannst keine Leeren Strings in einem Dialog anzeigen lassen.
format(string, MAX_PLAYERS ^ 2, ""); // -> Leerer String
ShowPlayerDialog ( playerid , ADACDialog , DIALOG_STYLE_LIST , "Folgende Spieler benötigen einen ADAC" , string, "Ok", "Abbruch");
Ich denke mal das du dich einfach nur verschrieben hast, also benutze den string
format ( astring , sizeof astring , "%s\n%s" , astring , pName );
ShowPlayerDialog ( playerid , ADACDialog , DIALOG_STYLE_LIST , "Folgende Spieler benötigen einen ADAC" , astring, "Ok", "Abbruch");
Bei TextDrawFont musst du als zweiter Parameter 4 angeben.
Also TextDrawFont(Beispiel_TD, 4);
Dann TextDrawCreate(x, y, "LOADSUK:loadsc8")
Das LOADSUK steht für die Datei in deinem GTA San Andreas Ordner (models\txd\LOADSUK.txd)
Das :loadsc8 für das Bild was in der Datei LOADSUK ist.
Das ist übrigens das Bild auf deinem Foto.
Mit TXD Workshop kannst du diese Dateien öffnen.
Der einzige Grund wieso das in Weiß sein könnte wäre das du die Farbe die du definiert hast, komplett Transparent gemacht hast.
Und ich habe irgendwie das Gefühl das du uns gerade hier ein bisschen verarschen willst oder?