Du versuchst einen Integer mit "format" zu formatieren
Vielen vielen Dank.
Mit freundlichen Grüßen
Kristik47
Du versuchst einen Integer mit "format" zu formatieren
Vielen vielen Dank.
Mit freundlichen Grüßen
Kristik47
Sieht nicht schlecht aus.Aber eine richtige Objektschleuder.
8/10, zu viele Objekte.
Naund mehr Objekte so besser
Ist ja nur ein present
Was für ein Humbug. Je mehr Objekte auf einer Fläche, desto länger lädt die Map(je nach Streamer) und
desto mehr FPS Lags/Drops erhalten Spieler mit einem schlechteren PC - wovon es
leider nicht wenig gibt.
Zurück zur Map:
sieht sehr ordentlich aus, aber man könnte auf der Fläche von den Markierungen, wo
die Feuerwehrautos raus fahren bis zum Anfang der Parkplätze/Mini-Parks
ein wenig was hinmappen. Irgendwas dekoratives. Aber da es ja schon, wie du schreibst,
800 Objekte sind, könnte das sehr brenzlich werden.
Ich gebe dir 9,5/10
Moin;
ich arbeite zurzeit an einem kleinen Rucksack-System. In diesem teste ich gerade, ob sich meine
Waffe im Rucksack speichert. Ich habe aber bemerkt, dass da kompletter Humbug rauskommt...
sowohl InGame als auch Datenbank bzw. der Mist, der InGame zusehen ist, den sieht man auch
in den Datenbankeinträgen gespeichert:
enum SPDaten
{
//Sind natürlich einige^^ Sachen mehr... hab sie nur raus genommen, um eine Übersicht zu haben.
Rucksack,
RobKeys,
BPGun1,
BPGun2,
BPGun3
}
new Spieler[MAX_PLAYERS][SPDaten];
//Der Befehl, mit dem der Rucksack aufgerufen wird:
ocmd:openbackpack(playerid, params[])
{
new string[128];
format(string, sizeof(string),"Waffe: %d Munition: %d \nWaffe: %d Munition: %d \nWaffe: %d Munition: %d \nDrugs: %d \nBombe(n): %d \nGeld: %d",
Spieler[playerid][BPGun1], Spieler[playerid][BPGun2], Spieler[playerid][BPGun3], Spieler[playerid][BackDrugs], Spieler[playerid][TBombBack], Spieler[playerid][Money]);
ShowPlayerDialog(playerid, DIALOG_BACKPACK, DIALOG_STYLE_LIST,"Rucksack",string,"Nehmen","Abbrechen");
return 1;
}
//Die zwei Dialoge, die hauptsächlich am System dran sind:
if(dialogid == DIALOG_BACKPACK)
{
if(response)
{
if(listitem == 0)
{
ShowPlayerDialog(playerid, DIALOG_GUNOPTION1, DIALOG_STYLE_MSGBOX, "Rucksack: Waffe 1","Lege deine gewünschte Waffe hier rein. Dazu musst du nur auf sie scrollen und hier auf >> reinlegen << drücken.\nUm diese wieder >> rauszuholen <<, musst du sie im Menu auswählen und auf >> rausholen << drücken.","Reinlegen","Rausholen");
}
}
}
if(dialogid == DIALOG_GUNOPTION1)
{
//new weaponname = GetPlayerWeapon(playerid), wename = GetWeaponModelIDFromName(weaponname), wammo = GetPlayerAmmo(playerid), ;
new wammo = GetPlayerAmmo(playerid), weaponid = GetPlayerWeapon(playerid);
if(response)
{
if(weaponid != 0)
{
format(Spieler[playerid][BPGun1], 100, "Waffe: %d");
RemoveWeaponForPlayer(playerid, weaponid);
}
}
else
{
GivePlayerWeapon(playerid, weaponid, wammo);
SendClientMessage(playerid, -1, "Du hast eine solche Waffe nicht im Rucksack.");
}
}
//Ich weiß nicht, wie ich abfragen kann, ob der Slot KEINEN PLATZ zum REINLEGEN hat bzw. NICHTS zum RAUSNEHMEN hat.
So sieht es dann InGame aus. Wenn ich mir eine Waffe gebe mit 2k Munition und Sie dann reinlege, dann passiert das nur
mit halbem Erfolg, denn die 2k-Waffe ist zwar weg und im Rucksack stehen auch zahlen, aber das ist einfach zu wenig
und zudem auch noch falsch verteilt (zweite Reihe spielt mit, obwohl ich es nur der 1. Reihe zuweise - BPGun1):
Mit freundlichen Grüßen
Kristik47
Es ist super, dass du mit 14 schon eine solche Initiative ergreifst, um ein Projekt zu gründen. Die Frage ist
aber, ob die Leute es zulassen; denn wie du es erwähnst, bist du noch in einem recht jungen Alter, wo man
sogar noch von der Pubertät sprechen kann. Das ist nicht das leichteste Zeitalter, deshalb wird es dir
schwer fallen ein Projekt, so wie du es dir vorstellst, aufzubauen, da ich mir kaum vorstelle, dass eine
Zusammenarbeit zwischen einem 14-jährigen und einem 18- oder 22-jährigen richtig möglich ist.
Zudem hat nicht jeder 14-jährige eine geistige Reife, wie es möglicherweise bei dir der Fall ist. Man weiß
es nicht, deshalb kann man dir da keine Garantie geben, dass es so richtig klappt.
Zudem wundere ich mich, wie du ein Projekt anfängst ohne eine gewisse Grundidee zu haben,
was denn nun der richtige Plan ist. Hardcore-Roleplay kann sich auch ziemlich breit machen.
Ich weiß nicht, ob du dir bewusst ist, dass Leute auf einem Godfather-Skript, wo du Hardcore-Roleplay
ausüben möchtest, nicht richtig spielen werden und es auch so umsetzen werden, wie es deiner Vorstellung
entspricht.
Außerdem muss gesagt sein, dass ein heutiges GTA SA:MP Projekt etwas an Moderne erfordert
im Sinne von Control Panel und sonstige Sachen. Außerdem wäre meine Frage, wie du die mit
14 Jahren alle Kosten übernehmen möchtest. Dazu gehört der Teamspeak, Eine Homepage, der
Server und weitere Dinge. Da kommt schon was zusammen an Kosten, deshalb denk nochmal nach,
worauf du dich da einlässt. Bedenke auch, dass ein Selfmade Skript keine "zwei Minuten"-Sache ist.
Es wird Monate erfordern.
Ich wünsche dir dennoch viel Erfolg.
Seid so nett und diskutiert das bitte per PN oder ähnliches.
Ich bin hier auf der suche nach:
"Meinungen und Empfehlungen von Leuten,
die bereits Erfahrung mit Anti-Cheat Filterskripts sammeln konnten, haben möchte."
Moin,
welches Anti-Cheat Filterskript/Skript könnt ihr mir empfehlen? Würde gerne Meinung
von Leuten wissen, die bereits mit Anti-Cheat Filterskripts Erfahrung sammeln konnten.
Hier im Forum gibts ja genug, wie zum Beispiel JunkBuster, aber ich weiß nicht, welchen
ich testen/probieren sollte, weshalb ich gerne Meinungen und Empfehlungen von Leuten,
die bereits Erfahrung mit Anti-Cheat Filterskripts sammeln konnten, haben möchte.
Und zum Thema Aimbot eine Frage:
Visiert Aimbot auch NPC's an?
Mit freundlichen Grüßen
Kristik47
Übung macht dem Meister. Leider wird einem im Leben nichts geschenkt, deshalb
sage ich auch dir: Versuch es einfach mal selber. Schau dir Tutorials an. Überblick
hast du nur dann, wenn du es auch richtig verstehst.
Ist gleich geblieben.
Habs jetzt so verändert, wie verlangt, aber es hat sich nichts geändert. Die Zeichen mischen sich ein und ersetzen
einfach Buchstaben. In der Datenbank wird alles so gespeichert, wie man's InGame eingibt.
//DIALOG 1:
SetPVarString(playerid,"InpString",inputtext);
//DIALOG 2:
format(string, sizeof(string),"Notiere dir das Passwort am besten; so lautet es: %s", GetPVarString(playerid,"InpString",inputtext,sizeof(inpstr)));
Bild:
Vielleicht wäre es sinnvoller, es mir per Code zu zeigen, damit ich es besser verstehe.
Mein Lehrer sagte immer: Wie man's das erste mal sieht, so wird man's auch immer machen.
Hundert pro das ist alles richtig was ihr sagt, aber ich kann damit leider nichts anfangen
Bzw. ich kanns nicht umsetzen.
Ich habs jetzt so gemacht:
//beim 1. DIALOG
SetPVarString(playerid,"InpString",inputtext, inpstr); // (15144) : warning 202: number of arguments does not match definition
//beim 2. DIALOG -> Keine Warns/Errors
GetPVarString(playerid,"InpString",inputtext,sizeof(inpstr));
format(string, sizeof(string),"Notiere dir das Passwort am besten; so lautet es: {33AA69}>>{FFFFFF} %s {33AA69}<<", inpstr);
Nun ja. Das ist eigentlich leicht zu machen. Du erstellst dir Textdraws, von mir aus mit dem Kollegen hier:
http://forum.sa-mp.com/showthread.php?t=543002
Dann musst du die (nötigen) TextDraws beim Connecten oder
wann du es auch immer haben willst, anzeigen lassen und dann bei
Public OnPlayerClickTextDraw durch clickedid, was in dem public
vordefiniert ist, abfragen, ob er irgendwas von den Textdraws angeklickt
hat. Davor aber nicht vergessen die TextDraws klickbar zu machen.
Das machst du per: SelectTextDraw(playerid, 0xB4B4B4FF);
Anzeigen und Verstecken tust du übrigens mit:
TextDrawShowForPlayer
und
TextDrawHideForPlayer
Und dann halt bei OnPlayerClickTextDraw entscheiden, was
passiert, wenn er die clickedid x oder y drückt.
Und nicht zu vergessen nachdem er etwas selected hat:
CancelSelectTextDraw(playerid);
So könnte das bei OnPlayerClickTextDraw aussehen:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(clickedid == TDFrakChose[8]) // GESETZ
{
... // Dein CODE!
}
}
Wo lädst du es und hast du es beim Laden mal ausgeprintet, was dir da angezeigt wird?
Was genau muss ich denn laden? Ich speicher Inputtext per String in einer PlayerVariable und
gebe sie beim nächsten Dialog per GetPVarString aus.
SetPVarString(playerid,"InpString",inputtext); <--- Speicherung
format(string, sizeof(string),"Notiere dir das Passwort am besten; so lautet es: {33AA69}>>{FFFFFF} %s {33AA69}<<",GetPVarString(playerid,"InpString",str,sizeof(str)));<--- Ausgabe
Ansonsten tu ich es in MySQL speichern und dort wirds auch --> VERNÜNFTIG <-- angezeigt.
Wenn du aufs Bild schaust siehst du ja dass meine gespeicherte PVar auch aufgerufen
wird, aber da kommen irgendwelche Zeichen ins Spiel.
Moin,
ich habe an einem kleinen aber feinen Sicherheitssystem gearbeitet und habe fast das nötige Resultat erreicht.
Es speichert das Passwort in der Datenbank ab, aber es gibt es sehr komisch im Spiel wieder. So sieht der Code
aus:
if(dialogid == DIALOG_SAVE_PASS)
{
if(!response) return SendClientMessage(playerid, -1,"Sicherheitspasswort-Erstellung abgebrochen.");
if(response)
{
new length = strlen(inputtext), query[200];
if(length > 4 || length <= 25)
{
mysql_format(handle, query, sizeof(query), "UPDATE users SET savepass = '%s', accSave = '1' WHERE `id`='%d'",inputtext, Spieler[playerid][p_id]);
mysql_function_query(handle, query, false, "", "");
Spieler[playerid][accSave] = 1;
SetPVarString(playerid,"InpString",inputtext); // INPUTTEXT WIRD IN VAR GESPEICHERT UND IM NÄCHSTEN DIALOG WIEDERGEGEBEN
ShowPlayerDialog(playerid, DIALOG_PASS_SHOW, DIALOG_STYLE_MSGBOX, "Passwort-Vorschau","Möchtest du dein Passwort, was du eben angegeben hast, noch einmal einsehen oder bist du dir sicher dabei, dass du es weisst?","Anschauen","Sicher");
}
else
{
ShowPlayerDialog(playerid, DIALOG_SAVE_PASS, DIALOG_STYLE_PASSWORD, "Sicherheitspasswort - Fehler","Bitte gib einen Sicherheitsschlüssel an, welcher nicht mehr als 25 Zeichen hat.","Bestätigen","Abbrechen");
}
}
}
if(dialogid == DIALOG_PASS_SHOW)
{
if(!response) return SendClientMessage(playerid, -1, "Du hast dich entschieden, dir das Passwort nicht nochmal anzuschauen. ACHTUNG: Es wird dein Pech sein, wenn du es nicht weisst im Falle eines Falles.");
if(response)
{
new str[128];
format(string, sizeof(string),"Notiere dir das Passwort am besten; so lautet es: {33AA69}>>{FFFFFF} %s {33AA69}<<",GetPVarString(playerid,"InpString",str,sizeof(str))); //Die ZEILE WO INPUTTEXT ERSCHEINEN SOLL
ShowPlayerDialog(playerid, DIALOG_PASS_SHOW_TRUE, DIALOG_STYLE_MSGBOX, "Passwort-Vorschau",string,"Fertig","");
}
}
Alles anzeigen
Und so sieht das Bild im Spiel aus:
Ich habe weder Errors noch Warnings bezüglich dieser Funktion. Diese zwei Zeichen ersetzen einfach
ein K, r und i. Bzw. es erscheinen halt Zeichen, die Buchstaben ersetzen. Warum?
Mit freundlichen Grüßen
Kristik47
Der Code soll einfach nur eine Zeichenkette sein. Also ein String, welcher sowohl aus Zahlen, Buchstaben und sonstigen Zeichen bestehen kann.
Danke dir für deine Hilfe, aber ich habe mich bereits entschieden, dass System zu überarbeiten -> ich schreibe es jetzt komplett neu und anders.
Das ist eine gute Idee. Habe es gemacht. Habe zwar keine Errors, aber würde gerne die Warnings loswerden:
if(!strcmp(inputtext) == Spieler[playerid][SafeCode])
/*
C:\Users\User\Desktop\SA-MP Server - MySQL Skripting\gamemodes\GCL.pwn(19374) : warning 202: number of arguments does not match definition
C:\Users\User\Desktop\SA-MP Server - MySQL Skripting\gamemodes\GCL.pwn(19374) : warning 213: tag mismatch
*/
Ich weiß, was diese Warnings bedeuten, aber ich weiß nicht, was ich dafür einsetzen soll.
Moin,
bin gerade an einem System dran und komme irgendwie nicht drauf, wie ich den Eingabetext, also den Inputtext
vom Spieler, mit einem Datenbankeintrag vergleichen kann. Sagen wir mal es ist ein Sicherheitspasswort, was
der Spieler bei der Registration angegeben hat. Sein Problem ist, dass er sein Passwort vergessen hat, aber
sein Sicherheitscode weiß und die Möglichkeit hat sein Passwort zu ändern. Er macht es und ab da will ich halt
mal wissen, wie ich seine Eingabe mit seinem früheren Datenbankeintrag vergleichen kann.
/E: PUSH
Arbeite weiter an diesem System und habe immer noch das Problem mit der Abfrage.
Habe zwar, wie von einigen vorgeschlagen, via strcmp verglichen, stoße aber jetzt schon seit einigen
Stunden auf das Problem, dass der weitere Dialog nicht angezeigt wird:
if(dialogid == DIALOG_PASSCHANGE_CONFIRM)
{
if(!response) return SCM(playerid, -1, "Abgebrochen.");
if(response)
{
if(!strcmp(inputtext, Spieler[playerid][SavePass], false))
{
ShowPlayerDialog(playerid, DIALOG_CHANGEPASS_TRUE, DIALOG_STYLE_INPUT,"Passwort-Änderung","Achtung: Du bist gerade dabei dein Passwort zu ändern! Mach dir damit bewusst, dass du erneut /saveacc Vorgang\nmachen >> musst <<, denn wenn dein Passwort geändert werden muss, muss auch das Sicherheitspasswort geändert werden!","Ändern","Abbrechen");
}
else
{
ocmd_changepassword(playerid, "");
}
}
}
Vom Aussehen her ist H1Z1 ein sehr anziehendes Spiel, aber wie gesagt: Es hat halt nicht sehr viele Variationen.
Natürlich bin ich mir sicher, dass du auch in H1Z1 deinen Spaß finden wirst, aber wie lange das dauern würde,
ist - denk' ich mal - absehbar. Miscreated ist ein recht weit entwickeltes Spiel und hat auch die perfekte Atmosphäre
für so eine Zombie-Apokalypse, woran noch einige Spiele erstmal rankommen sollten. Am nähsten ist für mich da
DayZ Standalone. Aber wenn du nur blöd rumlaufen willst und Zombies einzeln wegmetzeln möchtest oder selber weggemetzelt
werden möchtest, dann habe ich keine Varianten für dich. Das perfekte Spiel, welches die Kombi von gutem PVP und Zombie's
hat, ist für mich DayZ. Schau dir am besten einige Videos mal zu jedem Spiel an und entwickel deine Sympathie,
denn jedem gefällt alles anders. Ich glaube die Meinungen sind eher oberflächlich, denn letztendlich spielt halt
dein Wahrnehmen und die Sympathie zum und im Spiel die Hauptrolle.
Ich sagte bereits auf Seite eins das ich ArK leider nicht spielen kann.
MfG
Wenn du entscheiden möchtest, dann entscheide dich zwischen H1Z1 und DayZ Standalone.
Da H1Z1 nicht viele Modi hat und für mich persönlich DayZ Standalone einfach viel realistischer,
schöner und einfach nur spaßiger ist - sogar dann, wenn man nur Videos(LP's) schaut - würde ich dir
einfach DayZ Standalone empfehlen ohne lange rumzureden.
Alles anzeigenHallo Leute,
ich bin recht neu in Pawn und brauche eure Hilfe.
Zum ersten möchte ich 3 Actors beim Starten des Servers Spawnen, die aber Killbar sind und danach respawnen.
Zum zweiten möchte ich, dass man per Befehl "/bot" einen Actor neben sich Spawnen und töten kann. Nach dem Tot des Actors muss man sich einen neuen Spawnen.
Ich habe es so weit geschafft:
Codeocmd:bot(playerid,params[]) { new pid; if(sscanf(params,"u",pid)) return SendClientMessage(playerid,COLOR_RED,"Benutzung: /spawnbot [Spielername oder id]"); new Float:x; new Float:y; new Float:z; GetPlayerPos(pid,x,y,z); CreateActor(36, x+2,y,z); return 1; }
Was kann ich tun ?
Versuchs mal so:
ocmd:bot(playerid,params[])
{
new pid, nactor;
if(sscanf(params,"u",pid)) return SendClientMessage(playerid,COLOR_RED,"Benutzung: /spawnbot [Spielername oder id]");
new Float:x; new Float:y; new Float:z;
GetPlayerPos(pid,x,y,z);
nactor = CreateActor(36, 0.0, 0.0, 0.0);
SetActorPos(nactor, x+2, y+2, z);
SetActorInvulnerable(nactor, false);
return 1;
}
Hol dir DayZ Standalone. Ist ein Spiel mit großen Potenzial, viel Spaß und genug Variationen. Kann man natürlich in
ein fassen, nämlich DM, aber so sind ja eigentlich die meisten Spiele. Ich würde dir raten DayZ zu kaufen. Das würdest
du nicht bereuen.
Es funktioniert bereits seit einigen Stunden bei mir, danke dir.
Habe ja oben den grünen Marker reingemacht ==> erledigt.