So könnte man das machen:
new name[24];
GetPlayerName(playerid, name, 24);
if(!strcmp(name, "DeinName", true))
{
//Wenn dein Name "DeinName" ist
}
else
{
//Wenn er es nicht ist
}
mfg. ![]()
So könnte man das machen:
new name[24];
GetPlayerName(playerid, name, 24);
if(!strcmp(name, "DeinName", true))
{
//Wenn dein Name "DeinName" ist
}
else
{
//Wenn er es nicht ist
}
mfg. ![]()
Ich hab Dir gar nichts unterstellt.
Aber sowas machen nur Leute, die Ahnung haben
Paradox ![]()
Denk mal nach bevor du was schreibst ![]()
mfg. ![]()
//edit:
Jony
Zitat//edit zu GetMaxPlayer();
Soweit ich weiß hatte [NSG]Bright mal dazu etwas gepostet. Ich meine in Erinnerung zu haben, dass diese Funktion noch langsamer ist alles wenn man "MAX_PLAYERS" als Direktive Konstante benutzt.
Siehe:
ZitatSo kannst du das nicht sehen, da GetMaxPlayers() prüft wie viele Leute auf dem Server sind, sagen wir mal 5, danach macht er einen break und gibt diesen Wert wieder...und meine Schleife geht dann auch nur 5 Leute durch..insgesamt 10 Durchläufe...
Bei einem Direktive allerdings, läuft der constant 50 oder 100 oder was weiß ich für dinger durch, also ist in diesem Fall GetMaxPlayers() und auch eigentlich in allen anderen Fällen besser bzw gleich gut
Das aufrufen der Funktion ist bezüglich Geschwindigkeit langsamer, als eine einfache Direktive.
So kannst du das nicht sehen, da GetMaxPlayers() prüft wie viele Leute auf dem Server sind, sagen wir mal 5, danach macht er einen break und gibt diesen Wert wieder...und meine Schleife geht dann auch nur 5 Leute durch..insgesamt 10 Durchläufe...
Bei einem Direktive allerdings, läuft der constant 50 oder 100 oder was weiß ich für dinger durch, also ist in diesem Fall GetMaxPlayers() und auch eigentlich in allen anderen Fällen besser bzw gleich gut ![]()
mfg. ![]()
So:
new z = strfind(inputtext, "@", true);
if(z != -1)
{
//Ein @ wurde gefunden
}
else
{
//Ein @ wurde nicht gefunden !
}
mfg. ![]()
Für etwas gibt es Direktiven ;P

Wenn ich diese Funktion schon Nutze nehme ich GetMaxPlayers().
mfg. ![]()
//Edit:
So habe jetzt GetMaxPlayers() in die Schleifen eingebaut ![]()
Naja...nungut weitere Vorschläge bitte ![]()
Google mal gerade den Unterschied.
Wieso erklärst du es ihnen nicht ?
Zitathat das einen bestimmten grund oder nur aus lust und laune?
ich versteh nicht warum man freiwillig bools verwenden will ob man jetzt 0/1 schreibt oder true/false macht doch eigtl keinen unterschied.
bei bools muss man nur mehr schreiben
Übrigens, es besteht kein Unterschied ob man true oder false schreibt !
mfg. ![]()
Aber sowas machen nur Leute, die Ahnung haben und Ihre Programmierung überdenken.
Schneller geht es auf jeden Fall nicht, als einfach eine statische Variable darein zu setzen ![]()
Du gehst jetzt von MAX_PLAYERS oder GetMaxPlayers() aus...uhh, weil ich keine von diesen Funktionen verwendet habe, habe ich jetzt keine Ahnung von den Sachen die ich da mache oder was ![]()
Geile Logik ![]()
mfg. ![]()
Du musst das ganz anders schreiben, schreibe es so:
new stringstats[600];
format(stringstats,sizeof(stringstats)," \t Hauptinformationen:\n Name: [%s]",SpielerName(playerid));
format(stringstats,sizeof(stringstats)," %s\n Level: [%i]",stringstats,GetPlayerScore(playeird));
format(stringstats,sizeof(stringstats)," %s\n Job: [%s]",stringstats,Jobname);
format(stringstats,sizeof(stringstats)," %s\n \t Deine Scheine:",stringstats);
format(stringstats,sizeof(stringstats)," %s\n Führerschein: [%s]",stringstats,ScheinName);
format(stringstats,sizeof(stringstats)," %s\n Motorradschein: [%s]",stringstats,ScheinNameB);
format(stringstats,sizeof(stringstats)," %s\n Flugschein: [%s]",stringstats,ScheinNameF);
format(stringstats,sizeof(stringstats)," %s\n \t Deine Finanzen:",stringstats);
format(stringstats,sizeof(stringstats)," %s\n Geld: [%d]",stringstats, GetPlayerMoney(playerid));
format(stringstats,sizeof(stringstats)," %s\n Konto: [%d]",stringstats,GetPVarInt(playerid,"Bank"));
format(stringstats,sizeof(stringstats)," %s\n \tDeine Identität:",stringstats);
format(stringstats,sizeof(stringstats)," %s\n Fraktion: [%s]",stringstats,Frakname);
format(stringstats,sizeof(stringstats)," %s\n Admin:[%s]",stringstats,Adminname);
format(stringstats,sizeof(stringstats)," %s\n \t Deine Resepktstatus:",stringstats);
format(stringstats,sizeof(stringstats)," %s\n RespektPunkte: [%i/%i]",stringstats,GetPVarInt(playerid,"Respektpunkte"),GetPVarInt(playerid,"Respekt"));
format(stringstats,sizeof(stringstats)," %s\n Levelkosten: [%i$]",stringstats,GetPVarInt(playerid,"LevelMoney"));
format(stringstats,sizeof(stringstats)," %s\n \t Deine DMRate:",stringstats);
format(stringstats,sizeof(stringstats)," %s\n Tode: [%i]",stringstats, GetPVarInt(playerid,"Tode"));
format(stringstats,sizeof(stringstats)," %s\n Kills: [%i]",stringstats, GetPVarInt(playerid,"Kills"));
format(stringstats,sizeof(stringstats)," %s\n Wantedlevel [%i]",stringstats,GetPlayerWantedLevel(playerid));
ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"{FFCC00}Deine Statistiken",stringstats,"Schliessen","Schliessen");
return 1;
}
mfg. ![]()
Bei GetVehicleDriver ist ein Fehler. Die Schleife überprüft nur 250 Spieler
Glaubst du ein deutscher Server, der diese Hilfe benötigt hat mehr als 250 Spieler ![]()
PS: Wenn dir das zu wenige sind, kannst du das jederzeit editieren ![]()
mfg. ![]()
Die Idee finde ich auch gut.. das man abfragen kann auch, ob einer hinter einem Auto steht oder so (Könnte ich z.B gebrauchen)
Mal sehen...
Wenn jemand sonst noch Vorschläge hat, gerne posten ![]()
mfg. ![]()
Kaliber es gefällt mir
eine kleine sache fin dich da nicht so schön
#pragma tabsize 0
((Das kannste besser :D))
Aber eine idee hab ich noch
Du wirst lachen, aber in diesem Fall ist das notwendig !
Ich habe alles eingerückt, aber wenn jetzt einer auf die schlaue Idee kommt und das von pastebin kopiert ist es nicht mehr eingerückt, aus diesem Grund das #pragma als Sicherheit um Warnings vorzubeugen ![]()
ZitatAber eine idee hab ich noch
Welche ![]()
Ich poste alle meine Vorschläge in einen Post, damit es nicht als SPam gilt.
// Edit: Ist es auch möglich alle User die eine IP Adresse haben, aufzulisten in einem Dialog?
// Edit: Ist es möglich, Alle User die den selben Skin haben aufzulisten? (Ist einwenig unnötig, aber irgendwann nötig)
// Edit: Ist es möglich Alle Member einer Fraktion aufzulisten?
// Edit: Ist es möglich, alle Fahrzeug eines bestimmten Types (Also nicht die Server.CarID, sondern die normale Carid z.B Infernus 411) zu sich zuporten? Praktisch für Evnts etc.
// Edit: Ist es möglich, alle user die in der nähe sind (Radius definier bar) zufreezen / unzufreezen =
1. Die Funktion gibt es ja, aber sie anwenden muss man schon selber machen ![]()
2. Das könnte ich zwar in einen String packen, der wird aber übelst lang und mega unnötig...also lass ich es lieber ![]()
3. Nein, da ich nicht weiß, wie man die Fraktionsvariable deklariert.
4. Ja, dass kann ich auch machen, obwohl das auch überflüssig ist...(d.h.modelid)
5. Jo
mfg. ![]()
//Edit: Verbessert
//Edit2: Neue Funktionen hinzugefügt ! Weitere Vorschläge bitte...
schöne sache
Kannst du evtl auch eine Funktion machen, wie z.B "IsPlayerInRangeOfPoint", wobei aber nur die X und die Y achse eine rolle spielen, und natürlich der radius ? Also die höhe dann egal. (Falls dies überhaupt möglich ist)
Sehr gute Idee ![]()
Werde ich gleich mal machen (das ist möglich) ![]()
Ich poste alle meine Vorschläge in einen Post, damit es nicht als SPam gilt.
Wäre cool ![]()
Alles anzeigenJoar, klar:
GetVehicleColor
GetVehiclePaintjob
GetVehicleInterior
CreateVehicleEx mit Interior als Parameter (Linken von fahrzeugen an Interiors
Dann könnteste Funktionen schreiben wie IsBike, IsTruck etc.. (Nur so als Anregung)
Funktionen zum Abfragem, wieviele Sitzplätzer ein Fahrzeug hat
Thx ![]()
mfg. ![]()
Ist auch so eine Art Fahrzeug Zähler möglich?
Stimmt werde es direkt machen, dankeschön ![]()
Weite Vorschläge ![]()
Respekt richtig praktisch, wie man Kaliber halt kennt.
Dankeschön ![]()
Ich werde es sicherlicht benutzen!
Freut mich ![]()
Ich möchte mehr von deinen Werken sehen... ._.
Schlag was vor ![]()
mfg. ![]()
Nein,
wenn jemand den Keybinder aktiviert ist und jemand GTA verlässt (also auf Desktop geht) wird ein kleineres gui Fenster erstellt indem Sekunden aufgezählt werden wie lange man nicht ingame ist. Und sobald man wieder in GTA reingeht wird die "AFK Anzeige" gelöscht/geschlossen.
Mal eine Frage nebenbei und was soll das bringen ![]()
Zählt diese Funktion nur die Standart Objecte Sprich CreateObject(...
Oder auch die Objekte von Streamern Sprich CreateStreamObject(.../ CreateDinamyc(Object(... ?
Sie zählt beide mit ![]()
Sehr interessant.
Dankeschön, hast du Verbesserungsvorschläge ?
Simple aber Nice.
Danke, hast du noch Verbesserungsvorschläge ?
mfg. ![]()
Guten Morgen liebe Brotfische,
mir war mal langweilig und da habe ich überlegt, welche Funktionen denn in Pawn noch so recht praktisch sind/wären.
Aus diesem Grund habe ich ein paar Funktionen geschrieben die ich gleich erläutern werde, zunächst aber mal, wenn euch noch irgendwelche coolen Funktionen einfallen die ihr haben wollt, könnt ihr sie gerne posten:
[tabmenu]
[tab='Informationen','http://the-devils-playground.org/wcf/icon/infoM.png']
[subtab='Funktionen','http://forum.gamerzhost.de/wcf/icon/codeS.png']
GetPickupPos(pickupid, &Float: X, &Float: Y, &Float: Z); //Siehe "Wichtig"
GivePlayerJetpack(playerid, bool: var);//wenn var = true, bekommt er ein Jetpack | wenn var = false, wird dem Spieler das Jetpack genommen
GetIP(playerid); //Gibt die Ip (als String) aus
GetVehicleDriver(vehicleid); //Gibt die Spielerid vom Fahrer wieder
CountAllObjects(); //Zählt alle Objekte im Script
CountAllPickups(); //Zählt alle Pickups im Script *Wichtig lesen*
CountAllVehicles(); //Zählt alle Vehicles
InRange(playerid, Float: range, Float: X, Float: Y); //Tab Beispiele mal schauen
GetVehicleColor(veh, &color1, &color2); //Schreibt die Farbeid in die Variable color1 und color2
VehiclePort(playerid, modelid, Float: range); //Portet alle vehicleids mit dieser modelid in dieser Range zu dir
RangeFreeze(playerid, Float: range, bool: var); //Range freeze (true = freeze) | (false = unfreeze) | Beispiel Tab mal schauen
GetVehicleInterior(vehicleid); //Gibt den Interior von dem Fahrzeug wieder (Siehe Wichtig !)
CutIp(Ip[]);//Siehe Beispiel Tab
GetVehicleSeats(vehicleid); //Gibt die Anzahl der Sitze eines Fahrzeuges wieder !
GetVehicleEmptySeats(vehicleid); //Gibt die Anzahl der Freien Sitze in einem Fahrzeug an !
IsAlpha(text[]); //Prüft ob der Text nur aus Buchstaben besteht ! (Beispiel Tab)
GetIDFromName(name[]); //Man gibt dort den Namen eines Spielers ein und erhält seine ID
LogMessage(filename[], msg[]); //Schreibt die Nachricht in die Datei
WriteList(nam[]); //Schaue Beispiel Tab
ListActive(playerid); //Schaue Beispiel Tab
GetVehicleCoDriver(vehicleid); //gibt die playerid von dem CoDriver wieder
GetOnlinePlayers();//Returnt die Anzahl der Spieler die online sind
SetEngine(vehicleid, bool:var);//Motor an/aus (Beispiel Tab)
SetDoors(vehicleid, bool:var);//Türen auf/zu
SetLights(vehicleid, bool:var);//Lichter an/aus
SetAlarm(vehicleid, bool:var);//Alarm an/aus
SetBonnet(vehicleid, bool:var);//Motorhaube auf/zu
SetBoot(vehicleid, bool:var);//Kofferraum auf/zu
SetObjective(vehicleid, bool:var);//Objective an/aus
[subtab='Anleitung','https://webmail.server.uni-frankfurt.de/horde/themes/graphics/problem.png']
Um die Include Datei nutzen zu können, muss sie in diesen Ordner/Pfad kopiert werden:
und in seinem Script wo man die Funktionen nutzen möchte muss oben stehen:
#include <kaliber>
[subtab='Beispiele','http://www.damen-eishockey.de/images/lampe.gif']
Hier ein paar Beispiele zu den Funktionen:
//SetEngine
SetEngine(GetPlayerVehicleID(playerid), false);//Motor ist ausgeschaltet
//Whitelist System
new WhiteListName[3][64] = {"Kaliber","Test","Penner"}; //nur ein Bsp muss man natürlich anpassen
public OnGameModeInit()
{
for(new i; i<sizeof(WhiteListName); i++)
{
WriteList(WhiteListName[i]);
}
return 1;
}
public OnPlayerConnect(playerid)
{
ListActive(playerid);//und wenn der Spieler nicht oben eingetragen wurde, wird er hier gekickt !
return 1;
}
//IsAlpha
new text[128];
format(text, 128, "Hey was geht ab ?!");
if(IsAlpha(text))
{
//Der Text enthält keine Zahlen !
}
//InRange
if(InRange(playerid, 15.0, X, Y))
{
//Der Spieler ist in der Nähe von dieser X oder Y Koordinate !
}
//Ip Cutter
new Ip[16];
GetPlayerIp(playerid, Ip, 16);
printf("Cuttet Ip: %s",CutIp(Ip));
//->OutPut 127.0. (Wenn die Ip 127.0.0.1 war)
//Range Freeze
RangeFreeze(playerid, 15.0, true); //User in einer Range von 15.0 werden gefreezt !
[subtab='Download','http://www.projekt-deutsch.de/templates/cback/images/download.gif']
SourceCode: Pastebin
Mediafire: Mediafire
[/tabmenu]
Bitte um Feedbacks und um mehr Funktionen !
mfg.
//Edit:
+CountAllPickups()
Mehr Informationen
JetPack Funktion ausgebaut
Komplett Verbesserung + 5 neue Funktionen
Auf Wunsch einiger GetMaxPlayers() in die Schleifen eingefügt
+ GetVehicleInterior + CreateVehicleEx
Formulierungen
+CutIp
Defines mit anderen Scripts kompatibel gemacht...
+GetVehicleSeats + GetVehicleEmptySeats
+IsAlpha
+GetIDFromName
+Whitelist + LogMessage
+GetVehicleCoDriver
Fehler behoben
+GetOnlinePlayers() + InRange verbessert
Warning behoben
Autofunktionen
Pastebin erneuert
Mediafire hinzugefügt
Funktionen gehookt
Dan mach ne schleife und speicher alle beim restart
Das ist nicht nötig, da der Callback OnPlayerDisconnect für jeden Spieler beim Restart aufgerufen wird ![]()
Und bei einem Disconnect, wird das auch nicht gespeichert.
Kein Wunder warum das dann nicht funktioniert ![]()
Lass es da einfach abspeichern, dann funktioniert es ![]()
Was soll die 676 ? geht doch von 0 bis unendlich O.o ?
Ja, aber diese Zahl verhindert (im Normalfall) eine Überschneidung der Dialogids ![]()
mfg. ![]()