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 ![]()
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. ![]()
Schreibe mal oben in dein Script:
#pragma tabsize 0
#define DIALOG_REGISTER 676
mfg. ![]()
Alles anzeigenklein bisschen ressourcneschonender, den wieso erstmal sachen durchführen, die eventuell nicht gebraucht werden?
new einsatz;
if(sscanf(params, "i", einsatz)) return SendClientMessage(playerid, COLOR_GREY, "Benutze: /cdice [Einsatz]");
if(!IsPlayerInRangeOfPoint(playerid, 5, 2187.9375,1676.8564,11.1101)) return SendClientMessage(playerid, COLOR_GREY, "Hier kannst du nicht Würfeln!");
if(einsatz >= 10001 || einsatz <= 999) return SendClientMessage(playerid, COLOR_GREY, "Der mindest Einsatz ist $1000 und der maximale Einsatz $10000");
new spieleraugen = random(6);
new computeraugen = random(6);
new string[128];
if(spieleraugen < computeraugen){format(string, sizeof(string), "Du verlierst mit einer %d gegen eine %d - Verlust: %d", spieleraugen, computeraugen, einsatz); SendClientMessage(playerid, COLOR_WHITE, string); GivePlayerMoney(playerid, -einsatz);}
if(spieleraugen > computeraugen){format(string, sizeof(string), "Du gewinnst mit einer %d gegen eine %d - Gewinn: %d", spieleraugen, computeraugen, einsatz); SendClientMessage(playerid, COLOR_WHITE, string); GivePlayerMoney(playerid, einsatz);}
if(spieleraugen == computeraugen){SendClientMessage(playerid, COLOR_WHITE, "Niemand gewinnt - es wurde ein Unentschieden gewürfelt!");}
return 1;
}
Wenn du es schon perfektionieren willst dann direkt die .pwn Datei mit und dann schreibs so:
new einsatz;
if(sscanf(params, "i", einsatz)) return SendClientMessage(playerid, COLOR_GREY, "Benutze: /cdice [Einsatz]");
if(!IsPlayerInRangeOfPoint(playerid, 5, 2187.9375,1676.8564,11.1101)) return SendClientMessage(playerid, COLOR_GREY, "Hier kannst du nicht Würfeln!");
if(einsatz >= 10001 || einsatz <= 999) return SendClientMessage(playerid, COLOR_GREY, "Der mindest Einsatz ist $1000 und der maximale Einsatz $10000");
new spieleraugen = random(6), computeraugen = random(6), string[128];
if(spieleraugen < computeraugen){format(string, sizeof(string), "Du verlierst mit einer %d gegen eine %d - Verlust: %d", spieleraugen, computeraugen, einsatz); SendClientMessage(playerid, COLOR_WHITE, string); GivePlayerMoney(playerid, -einsatz);}
if(spieleraugen > computeraugen){format(string, sizeof(string), "Du gewinnst mit einer %d gegen eine %d - Gewinn: %d", spieleraugen, computeraugen, einsatz); SendClientMessage(playerid, COLOR_WHITE, string); GivePlayerMoney(playerid, einsatz);}
if(spieleraugen == computeraugen) return SendClientMessage(playerid, COLOR_WHITE, "Niemand gewinnt - es wurde ein Unentschieden gewürfelt!");
return 1;
}
mfg. ![]()
Ein stock ist kein Callback !
Ändere die stock Funktion in einen Callback ![]()
mfg. ![]()
Das Ding ist einfach, dass diese Rakete ein Ziel benötigt, sonst steht die nur blöd in der Luft ![]()
Raketex, Raketey, Raketez wie/wo initialisierst du diese Variablen ? (Wo gibst du den Variablen einen Wert ?)
mfg. ![]()