Beitrag von Viget Drakedog ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
warning 217: loose indentation = falsch eingereiht
Habs mal für dich neu eingerückt.
Abgesehen davon hattest du ein oder zwei Klammerfehler gehabt.
Und zur Ausgabe "SendClientMessage(playerid, 0xFF00FF00, "es gibt folgendes:\n /hilfe");" würde ich dir raten, es zu formatieren.
Denn im SendClientMessage kannst du keine Zeilenumbrüche (/n) darstellen, es seiden du machst darunter einen weiteren SendClientMessage mit "/help" usw.
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/hilfe", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid, 0xFF00FF00, "es gibt folgendes:\n /hilfe");
return 1;
}
if(strcmp("/heilen", cmdtext , true, 10) == 0)
{
SetPlayerHealth(playerid,100);
SendClientMessage(playerid,0xB90000FF,"Sie haben erfolgreich Erstehilfe geleistet!");
return 1;
}
return 0;
}
//e:
Möchtest du einen Befehl erstellen, um andere zu Heilen oder nur dich?
Eigentlich wo ich die playerid eintippen muss
Dann müsstest du am besten mit Includes wie "ocmd" oder "dcmd" arbeiten, um das Bewerkstelligen zu können.
Der Befehl würde dann in etwa so ausschauen.
ocmd:heilen(playerid,params[])
{
new pID, Health;
//Variablen für den Spieler & das Health
if(sscanf(params, "si",pID,Health)) return SendClientMessage(playerid, -1, "Benutzung: /heilen [ID/Name] [Anzahl]");
//Abfrage, ob alles eingegeben wurde. Sprich "/heilen Ray_Johnson 100"
SetPlayerHealth(pID, Health);
//Setzt den Wert "Health" des Spielers "pID" auf den eingetragenen Wert mit der angegebenen Anzahl an Health
return 1;
}
Alles anzeigenocmd:heilen(playerid,params[])
{
new pID, Health;
//Variablen für den Spieler & das Health
if(sscanf(params, "si",pID,Health)) return SendClientMessage(playerid, -1, "Benutzung: /heilen [ID/Name] [Anzahl]");
//Abfrage, ob alles eingegeben wurde. Sprich "/heilen Ray_Johnson 100"
SetPlayerHealth(pID, Health);
//Setzt den Wert "Health" des Spielers "pID" auf den eingetragenen Wert mit der angegebenen Anzahl an Health
return 1;
}
Eigentlich müsste es eher so sein:
ocmd:heilen(playerid,params[])
{
new pID, Health;
//Variablen für den Spieler & das Health
if(sscanf(params, "ui",pID,Health)) return SendClientMessage(playerid, -1, "Benutzung: /heilen [ID/Name] [Anzahl]");
//Abfrage, ob alles eingegeben wurde. Sprich "/heilen Ray_Johnson 100"
SetPlayerHealth(pID, Health);
//Setzt den Wert "Health" des Spielers "pID" auf den eingetragenen Wert mit der angegebenen Anzahl an Health
return 1;
}
Die Parameter bei der sscanf abfrage müssen ui sein, nicht si, s steht für String, u steht für Spieler/PlayerID.
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.
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.
Mein /gmxbfehel:
Ich weiss das man die Pickups so löschen kann:
#include <a_samp>
//Definierte sachen
#define pickup
main()
{
print("\n----------------------------------");
print(" Drakedog-Learn");
print("----------------------------------\n");
}
public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
DestroyPickup(pickup);
Alles anzeigen
Serverinfo(
Schreib das:
SendRconCommand("gmx");
#define pickup
Nein, das ist Blödsinn.
new pickup;
pickup = CreatePickup(...); //Erstmal erstellen
DestroyPickup(pickup); //dann zerstören
mfg.
Das mit dem GMX geht.
Aber das mit den pickupnicht
Aber das mit den pickupnicht
Ein bisschen Code wäre schön, damit man dir helfen kann...
#include <a_samp>
new pickup;
main()
{
print("\n----------------------------------");
print(" Drakedog-Learn");
print("----------------------------------\n");
}
public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
CreatePickup(2,4,1199.1300,-920.5710,43.0292,0); //Erstmal erstellen
DestroyPickup(pickup); //dann zerstören
return 1;
}
Alles anzeigen
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...
Doch weil ich alle punkte eigentlich weg haben wollte
Doch weil ich alle punkte eigentlich weg haben wollte
Was denn für Punkte?!
Die Pickups
Die Pickups
Ich denke einfach mal du meinst die gelben Interior Pickups.
Schreibe dafür einfach folgendes unter OnGameModeInit:
DisableInteriorEnterExits();
mfg.
Kaliber danke dir.
Ich kann jetzt als Anfänger bis jetzt nur:
CMD-Befehle
RCON-Befehle
und halt Pickups erstellen.
Welchen schritt sollte ich jetzt gehen?