Und das ganze nochmal auf Deutsch, davon verstehe ich jetzt grade garnicht's o_O
würdest Du mir ein Beispiel erstellen?
Und das ganze nochmal auf Deutsch, davon verstehe ich jetzt grade garnicht's o_O
würdest Du mir ein Beispiel erstellen?
Hallo,
ich habe eine Frage zu dini.
Undzwar habe ich eine Datei, in die ich mit einem Befehl mehrer Dinge speicher.
Wenn ich diesen nun zum zweiten mal ausführen und speichern möchte, updatet sich die Datei nur mit den entsprechenden neuerungen.
Ich möchte aber eine fortlaufende Datei haben, die bei erneutem nutzen des Befehles die Neuerungen ergänzt.
Wie mache ich das?
Danke im Vorraus
Hallo,
ich wüsste gerne, warum mein Befehl unten, die Variable "adresse" nicht speichern kann.
Er soll die Eingabe speichern, welche nach /sethouse kommt... also "/sethouse eingabe"
new adresse wird oben im script gespeichert, ist also vorhanden.
ocmd:sethouse(playerid,params[])
{
new string[128];
new string2[128];
format(string,sizeof(string)," [%s]",adresse);
dini_Set(HAUS_DATEI,"Adresse:",string);
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
format(string2,sizeof(string2)," %f, %f, %f", Pos[0], Pos[1], Pos[2]);
dini_Set(HAUS_DATEI,"Koordinaten:",string2);
return 1;
}
Ne, habe ich schon probiert geht leider nicht.
Ich habe jetzt folgendes:
ocmd:sethouse(playerid,params[])
{
new Float:Pos[3];
new string[128];
new adresse;
new kosten;
new level;
new id;
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
format(string,sizeof(string)," [%s] -- [%f, %f, %f]",adresse, Pos[0], Pos[1], Pos[2]);
dini_Set(HAUS_DATEI,"Adresse:",string);
return 1;
}
Meine Koords werden jetzt korrekt gespeichert, allerdings noch immer nicht das, was ich nach /sellhouse (adresse) schreibe
Hallo,
ich benötige ganz dringend Hilfe bei dem unten stehenden Befehl.
Ich komme dort einfach nicht mehr weiter.
Ich will damit folgende Funktion erreichen "/sethouse [adresse]" und dann für die Variable adresse ein Wort speichern sowie die koordinaten vom aktuellen ort. alledings kommt bei adresse garnichts und bei der position wird nur X gespeichert, aber warum?
ocmd:sethouse(playerid,params[])
{
new Float:Pos[3];
new string[128];
new adresse;
format(string,sizeof(string)," [%s]",adresse);
dini_Set(HAUS_DATEI,"Adresse:",string);
dini_FloatSet(HAUS_DATEI,"Koordianten",GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]));
return 1;
}
Selfmade - mehr oder weniger Selbstversuch bisher läufts ganz gut
Edit:
Includes dazu habe ich mir angesehen aber das ist mir irgendwie nichts
Hallo,
ich bin auf der Suche nach einer Möglichkeit, im Spiel Häuser schnell zu erstellen, welche gekauft und verkauft werden können.
Zudem kann jeder User diese Häuser mieten und die Miete Kündigen.
Dazu ist jetzt meine Frage, wie gehe ich das am besten an und wie kann ich dafür sorgen, dass der User, wenn er das Haus kauf oder Mietet auch dort spawnt?
Ja, das hilft mir schon ein bisschen Weiter....
Ich spiele da mal ein wenig mit rum und meld mich sobald wieder
Edit:
Das hat soweit alls funktioniert, jetzt habe ich versucht das ganze mit einem /s Chat zu machen aber ich komme einfach mit den Strings nicht zurecht, kann mir da jemand evtl erklären, wie ich bestimmte Dinge aus einem "Befehl" auslesen kann? Wie sage ich Ihm, dass er im Beispiel unten nur den Bunten teil auslesen soll?
/s hallo
Hallo,
ich benötige Hilfestellung bei der Erstellung eines reallife mäßigen Chat's.
Ich stelle mir das ganze so vor:
Ein User schreibt etwas ganz normale ohne CMD: User sagt: Hallo. Radius 10
Ein User schreibt /s [TEXT]: User schreit: Hallo! Radius 20
Ein User schreibt /w [ID] [Text] User flüster zu User²
Zudem wäre es ganz schön, wenn mir jemand mal erklärt, wie ich nach einem CMD den eingegebenen Text verarbeiten kann. Z.b. User tippt /s [TEXT] wie kann ich den Text "abgreifen".
Eine Erklärung zu Strings wäre ganz schön, Wiki habe ich schon gelesen.
Vielen Dank im Vorraus!
P.S. Suchfunktion wurde benutzt, dennoch nicht genaue Antworten auf meine Frage.
Ansatzweise alles korrekt. Aber hier der Lösungsvorschlag:
Einen neuen Bool erstellen
Zitatnew bool:tot[MAX_PLAYERS];
Neuen Public
Zitatforward KrankenhausTimer(playerid);
Dann unter OnPlayerDeath
ZitatAlles anzeigenpublic OnPlayerDeath(playerid, killerid, reason)
{
SetTimerEx("KrankenhausTimer",30000,0,"i",playerid);//startet den timer, nach 30 sekunden wir der public Krankenhaustimer aufgerufen
TogglePlayerControllable(playerid, 0);//Freezet den Spieler
SetPlayerPos(playerid,1162.871704, -1339.109619, 14.297291);//Portet den Spieler unter das Krankenhaus
SendClientMessage(playerid,rot,"Notarzt: Aufgrund Deiner Verletzungen wurdest Du ins Krankenhaus gebracht");
SetPlayerCameraPos(playerid, 1223.379028, -1333.354126, 33.809105); //Setzt die Camera Position
SetPlayerCameraLookAt(playerid, 1178.824829, -1325.804077, 13.284119); //Setzt die Position, wo die Cam hinschauen soll
SetPlayerInterior(playerid, 0); //Setzt den Interior vom Spieler auf 0 damit er was sehen kann
tot[playerid] = true;//setzt den bool auf 1, bzw true
return 1;
}
Public KrankenhuasTimer
ZitatAlles anzeigenpublic KrankenhausTimer(playerid)//Erstellt ein Public für den Timer
{
SetPlayerPos(playerid,1162.871704, -1339.109619, 14.297291);
SetPlayerHealth(playerid,100);//Spieler bekommt 100 HP
GivePlayerMoney(playerid,-200);//Behandlungskosten werden abgezogen
SendClientMessage(playerid,rot,"Notarzt: Deine Behandlung kostet $200");
}
Dann ganz wichtig unter OnPlayerSpawn
Zitatif(tot[playerid] == true)
{
SetPlayerPos(playerid,1162.871704, -1339.109619, 14.297291); //Coords, wo er nach dem Krankenhaus spawnen soll
tot[playerid] = false;//bool:tot auf 0 bzw false setzten, damit der ganze mist beim nächsten tot wieder klappt
}
hmm, das sieht verdammt kompliziert aus so, aber warum geht das denn nicht, wie in meinem Beispiel - das verstehe ich nicht ganz?
Was bedeutet für Dich direkt spawnen, inwiefern? Er muss sich ja zuvor einloggen - und beim Register den Skin zuvor erstmal auswählen
Hallo,
ich verzweifel solangsam an meinem bestehenden System.
Undzwar möchte ich die Skinauswahl nur nach dem Registrieren anzeigen lassen. Das ganze ist nun so, dass beim Regi in die User Datei der Skin 800 gespeichert wird. Diesen gibt es natürlich nicht, diehnt auch nur der If Abfrage. Jedenfalls soll das so sein, dass die Skinauswahl mit Skin 800 angezeigt werden soll und bei allen anderen sofort mit dem ausgewählten Skin gespawnt.
public OnPlayerRequestClass(playerid, classid)
{
new Account[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Account, sizeof(Account),"/Accounts/%s.txt",name);
if(dini_Int(Account,"Skin") == 800)
{
SetPlayerPos(playerid, 303.4827,-1624.9719,114.4219);
SetPlayerFacingAngle(playerid, 44.3145);
SetPlayerCameraPos(playerid, 298.5444,-1619.9141,114.4163);
SetPlayerCameraLookAt(playerid, 303.4827,-1624.9719,114.4219);
}
SpawnPlayer(playerid);
return 1;
}
So habe ich mir das gedacht, man merkt auch, dass er versucht etwas zu verarbeiten weil er die Skinauswahl nicht mehr zeigt nach dem zweiten Connecten. Allerdings habe ich dann zusätzlich zu meinem Startschirm noch immer den Button zum Skin auswählen oder Spawnen. Wenn ich nun auf Spawnen klicke, macht er auch mit dem Skin den ich ausgesucht habe das was gefordert ist...
aber genau dies möchte ich umgehen - nach dem Login soll er sofort spawnen.
Der Skin wird auch vergeben.
Bitte um Hilfe