Beiträge von Kaliber
-
-
Oder gehört da auch noch ein medic hin?
Ja ups da habe ich mich verschrieben, natürlich kommt da ein medic hin
-
Ich will mal eine andere Methode vorstellen.
Es geht viel leichter, viel schneller und man spart jede Menge Ressourcen

new lspd[2],medic[2];
Also, man brauch einfach nur ein Array mit 2 Feldern.
Jetzt erstellt man z.B. so die Fahrzeuge:
lspd[0] = CreateVehicle(...); //LSPD Fahrzeug (erstes Fahrzeug)
CreateVehicle(...); //LSPD Fahrzeug
CreateVehicle(...); //LSPD Fahrzeug
CreateVehicle(...); //LSPD Fahrzeug
CreateVehicle(...); //LSPD Fahrzeug
CreateVehicle(...); //LSPD Fahrzeug
lspd[1] = CreateVehicle(...); //LSPD Fahrzeug (letztes Fahrzeug)medic[0] = CreateVehicle(...); //Medic Fahrzeug (erstes Fahrzeug)
CreateVehicle(...); //Medic Fahrzeug
CreateVehicle(...); //Medic Fahrzeug
CreateVehicle(...); //Medic Fahrzeug
CreateVehicle(...); //Medic Fahrzeug
CreateVehicle(...); //Medic Fahrzeug
medic[1] = CreateVehicle(...); //Medic Fahrzeug (letztes Fahrzeug)Und dann einfach folgendes (man braucht nicht einmal eine Schleife!):
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(lspd[0] <= vehicleid <= lspd[1]) return SendClientMessage(playerid,-1,"Sie sitzen in einem LSPD Fahrzeug!");
else if(medic[0] <= vehicleid <= medic[1]) return SendClientMessage(playerid,-1,"Sie sitzen in einem Medic Fahrzeug!");
}
return 1;
}Viel Spaß mit diesem System

mfg.

//Edit: Fehler
-
"This property doesn't exist
Das liegt an einem Filterscript und zwar gl_property
Entferne das einfach mal aus deiner server.cfg

mfg.

-
Könnte man das nicht auch mit einem Timestamp lösen? Beim Öffnen des Dialogs den timestamp speichern, und bei response bzw. !response einfach den Vergleich machen. Find ich persönlich eine schönere Variante.
Du solltest dir nochmal anschauen, was das Include alles macht...und an alle anderen, danke, dass es euch gefällt

-
Die Pickups
Ich denke einfach mal du meinst die gelben Interior Pickups.Schreibe dafür einfach folgendes unter OnGameModeInit:
DisableInteriorEnterExits();
mfg.

-
Doch weil ich alle punkte eigentlich weg haben wollte
Was denn für Punkte?! -
CreatePickup(2,4,1199.1300,-920.5710,43.0292,0);
Du musst ja auch folgendes schreiben:pickup = CreatePickup(2,4,1199.1300,-920.5710,43.0292,0);
Aber 2 Sachen dazu:
1. modelid 2 existiert in diesem Sinne nicht.
2. Ein Pickup zu erstellen und danach zu zerstören macht wenig Sinn...
-
Aber das mit den pickupnicht
Ein bisschen Code wäre schön, damit man dir helfen kann...
-
Serverinfo(
Schreib das:SendRconCommand("gmx");
#define pickup
Nein, das ist Blödsinn.new pickup;
pickup = CreatePickup(...); //Erstmal erstellen
DestroyPickup(pickup); //dann zerstören
mfg.

-
SetSpawnInfo(playerid,0,271,691.3540,-1186.2450,15.3186,57.3406,24,658,31,444,38,89985);
Das muss so lauten:SetPlayerPos(playerid,691.3540,-1186.2450,15.3186);
mfg.

-
neues problem leider

Da fehlt eine Klammer unten
Mach über das return 1; eine }

mfg.

-
Man kann auch strcmp dafür nutzen ohne sscanf & strtok

Sieht dann so aus:
if(strcmp("/heilen", cmdtext , true) == 0)
{
if(strlen(cmdtext) < 9) return SendClientMessage(playerid,-1,"Verwendung: /heilen [spielerid]");
new pID = strval(cmdtext[8]);
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,-1,"Ein Spieler mit dieser ID ist nicht online!");
SetPlayerHealth(pID,100.0);
return 1;
}mfg.

-
Kaliber liegt da schon richtig denke ich.
Ja...das tue ich
stock kann man nicht nur bei Funktionen anwenden, auch z.B. bei globalen Variablen:
new stock Var1;
/*
Wenn man diese nicht nutzt, kommt ja meistens ein Warning, so von wegen, Variable never used.
Aber durch stock, wird sie vom Compiler automatisch ignoriert.
So kann man unnötige Speicherverschwendung verhindern.
*/mfg.

-
Bei stocks werden Warnings beim Compilen nicht angezeigt.
Quatsch!Das Wort stock sorgt nur dafür, dass wenn die Funktion nicht aufgerufen wird, vom Compiler ignoriert wird

mfg.

-
Geht das nur mit MSG_BOX-Dialogen ?
Es würde theoretisch auch mit anderen gehen...aber was hätte das für einen Sinn?
und an alle anderen, vielen Dank für euer Feedback

mfg.

-
den Fehler
Naja es wäre kein Error, sondern nur ein Warning.Vielleicht ignoriert er diesen, weiß man ja nicht

Aber wenn der Code funktioniert, lass ihn doch einfach stehen...ich meine auf den Variablen-Namen kommt es jetzt auch nicht an

-
Guten Nachmittag liebe Brotfische,
ich stelle euch nun ein System vor, was äußerst praktisch ist bei z.B. einem Tutorial oder einer Erklärung.
Es geht um Dialoge die man erst nach einer bestimmten Zeit wegklicken kann.
Funktionen:
//Funktionen
native ShowPlayerTimeDialog(playerid,time,header[],body[],const button[]); //returnt dialogid
native RestartTimeDialog(playerid,id,time=0);//Callback
OnTimeDialogResponse(playerid, dialogid);Beispiele:
Im folgenden Beispiel erstelle ich nun einen Dialog, der für 15 Sekunden angezeigt wird.new id; //Oben im Skript
//Da wo der Dialog angezeigt werden soll
id = ShowPlayerTimeDialog(playerid,15,"{FF0000}Timer Dialog","{FFFFFF}Sie müssen diese Nachricht leider {FF0000}15 Sekunden{FFFFFF} lesen!","Bestätigen");/*
Zur Information...da steht ja "Bestätigen", dieser Button-Text wird dann nach 15 Sekunden angezeigt!
*///Und dann der Callback irgendwo im Skript:
public OnTimeDialogResponse(playerid, dialogid)
{
if(dialogid == id)
{
SendClientMessage(playerid,-1,"uuuund Bestätigt! :)"); //Das wird erst aufgerufen, sobald Bestätigen als Button angezeigt wurde (also nach 15sek)
}
return 1;
}Falls ihr jetzt diesen Dialog nochmal anzeigen lassen wollt, könnt ihr einfach folgendes machen:
RestartTimeDialog(playerid,id);
Ihr könnt aber auch eine neue Zeit einstellen, z.B. nur 10 Sekunden:
RestartTimeDialog(playerid,id,10);
Ihr bekommt einen Error?
Spoiler anzeigen Es kann sein, dass ihr folgenden Fehler bekommt:Spoiler anzeigen Dann einfach folgendes in euren Gamemode einfügen:Spoiler anzeigen public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 1;
}Screenshots:
Download:
Source-Code: PasteBin
Direkter-Download: MediaFireSchlusswort:
So das wars auch schon mit der kleinen Vorstellung
Falls ihr Fragen oder Probleme habt, einfach in den Thread damit

mfg.

-
Also...er redet nicht von konstanten "Variablen" (ich lass das einfach mal so stehen) an sich, sondern er redet von der Konstanen MAX_PLAYER_NAME.
Aber da sizeof ein unärer Operator ist, macht das nicht direkt einen Unterschied ob man das eine oder das andere nimmt.
Der Fehler, wieso es wahrscheinlich nicht funktioniert ist der, dass du die Variable Name schon irgendwo verwendest (evtl in einem Enum(erator)?)

mfg.

-
GetClosestPlayer(playerid, 1.0);
Ein radius von 1.0 ist ziemliche eng...mach mal lieber 5.0 oder 10.0, aber ja, dass könnte so funktionieren
mfg.
