Man kann es sicherlich erhöhen,nur wird es mit je mehr Objekten immer unstabiler und die Gefahr das es mal crasht steigt.Bis 2048 sollte es wohl stabil laufen,darüber hinaus sollte es zu öfteren Crashes kommen.
Beiträge von Goldkiller
-
-
Wie wäre es wenn du dich an ein Admin Filterscript machst ?
Dann müsste man sich nicht immer als Rcon Admin einloggen um jemanden zu jailen ;).Der Code sieht jedenfalls sauber aus.Hast alles ordentlich eingerückt.
SendClientMessageToAll(COLOR_GREEN,"Der wo Gejailt war ist aus dem Knast raus(Gefengnis)");
Fände es so besser:
new str[100],PlayerName[24];
GetPlayerName(unjailid,PlayerName,24);
format(str,100,"%s wurde aus dem jail entlassen",PlayerName);
SendClientMessageToAll(COLOR_GREEN,str");
So ähnlich hast du es ja auch in deinem Job Filterscript ....
Weiter so -
Bist du sicher das du Züge meinst?Die sind ganz normal betretbar wie im Single Player auch (F-Taste)
Könnte mir vorstellen das du die Tram meinst (Der kleine 'Zug' der durch San Fierro fährt) -
Auszug aus YSI_objects.own
#define MAX_DYN_OBJECTS 2048 -
Nein.
if(IsPlayerInArea(pid, 1205.5015, -848.337, 1316.8862,-740.3098 ))
******** dort steckt der Fehler.Du hast die Koordinaten nicht richtig eingesetzt.
Wenn du mir an den beiden Eckpunkten deiner Area Koordinaten machst,sie hier auch postet mach ich dir das . -
Bekommst du denn Fehler beim compilen oder funktioniert Ingame einfach nix?
Area Check -
public timer1()
{
for(new pid=0;pid<MAX_PLAYERS;pid++)
{
if(IsPlayerConnected(pid))
{
if(IsPlayerInArea(pid, 1205.5015, -848.337, 1316.8862,-740.3098 ))
{
if(!IsPlayerAdmin(pid)) //Es soll doch eine Admin Zone sein...Also wenn der Spieler nicht Admin ist ;)
{
SetPlayerPos(pid, 1958.3783, 1343.1572, 15.3746);
}
}
}
}
}//**********
stock IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy) //By Alex "Y_Less" Cole
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if (x > minx && x < maxx && y > miny && y < maxy) return 1;
return 0;
}
So sollte es funktionieren.Du hast wohl die Funktion "IsPlayerInArea" nicht in deinem Script -
Na gut,jeder fängt mal klein an
In deinen Commands erstellst du immer "id,ActionName[24]".Du verwendest es aber nie.Ist
also quasi um sonst da.
Der Command /artzt müsste richtig /arzt heissen ;).
Was mich auch noch stört,ist es das meistens bei solchen Filterscripts wie deinem
(Ja,gab schon vor dir welche die auf so eine Idee kamen ;P) man sogar den Beruf den man zuvor
schon gewählt hat,per cmd nochmal wählen kann.
Ich zeig dir mal wie ich es für besser halte.
//Nach oben in dein Filterscript
new Beruf[MAX_PLAYERS];
#define ARBEITSLOS 0
#define POLIZEI 1
#define ARTZ 2
#define PILOT 3
//etc
//Commands
if (strcmp(cmdtext, "/arbeitslos", true) == 0) {
if(Beruf[playerid]!=ARBEITSLOS) { // Checkt ob er schon Arbeitslos war
new string[256],PlayerName[24]; GetPlayerName(playerid,PlayerName,24);
format(string,256,"%s hat keinen job mehr!",PlayerName); SendClientMessageToAll(COLOR_RED,string);
SpawnPlayer(playerid);
Beruf[playerid]=ARBEITSLOS;
}
else {
SendClientMessageToAll(COLOR_RED,"Du bist bereits Arbeitlos");
}
return 1;
}
if (strcmp(cmdtext, "/polizei", true) == 0) {
if(Beruf[playerid]!=POLIZEI) {
new string[256],PlayerName[24]; GetPlayerName(playerid,PlayerName,24);
format(string,256,"%s ist nun Polizist!",PlayerName); SendClientMessageToAll(COLOR_GREEN,string);
SetPlayerColor(playerid, COLOR_BLUE);
GivePlayerWeapon(playerid, 22, 200);
SetPlayerPos(playerid, 1543.5017,-1639.5959,6.2188);
SetPlayerSkin(playerid, 280);
Beruf[playerid]=POLIZEI;
}
else {
SendClientMessageToAll(COLOR_RED,"Du bist bereits Polizist");
}
return 1;
} -
-
Da es ein Filterscript ist,kannst du "OnGameModeInit()" und "OnGameModeExit()" nicht verwenden.
Versuch es mal neu,in dem du alles was unter "OnGameModeInit()" hast unter "OnFilterScriptInit()" einfügst.
Das Gleiche machst du auch mit "OnGameModeExit()".Nebenbei,dein Command solltest du ändern.Du hast nämlich "cmd" neu definiert und vergleichst es mit "/auswahl"."cmd" ist aber ein leerer String.
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/auswahl", true) == 0) {
ShowMenuForPlayer(haupt,playerid);
return 1;
}return 0;
} -
Vorne Weg,das Filterscript benötigt dini falls ihr es selber compilen wollt.
Download dini
Was macht das Filterscript?
Nicht wirklich viel.Vielleicht kennt ihr vom ga Server die Announce Commands wie zB "!afk","!hi" etc. Es wird eine Nachricht in den Chat geschrieben.Da es mir zu blöd war sowas immer in den GameMode zu schreiben und immer neu zu compilen,amx auszutauschen [...] habe ich ein FS gemacht wo man in ein Filei (cmds.ini) schreiben kann was für eine Nachricht bei welchem text erscheinen soll.
Hier ein kleines Beispiel:Zitat
!Test=Just a Test right ?
$Bla=bla bla bla bla
Schreibt jmd "!test" in den Chat erscheint "Just a Test right :P" in einer per zufall ausgesuchten Farbe im Chat.Bei "$Bla" erscheint "bla bla bla bla"...Das ganze hat einfach den Vorteil das man Commands erstellen kann während der Server läuft ;).
Ich hab es so eingestellt das man Announce Commands mit "! und $" machen kann.Natürlich kann man noch viele andere einstellen.Einfach mal im Source Code etwas suchen.Vielleicht kann das FS ja jemand gebrauchen
hf -
#include <a_samp>new Menu:geschenk;
#define COLOR_RED 0xAA3333AA
#define COLOR_GREEN 0x33AA33AApublic OnFilterScriptInit() {
print("___________________________________");
print("| Waffen Geschenk |");
print("| Version 1.0 |");
print("| |");
print("| (c) Hayssen Vampyrum 2007 |");
print("|_________________________________|");
print(" 16.09.07");
}public OnFilterScriptExit() {
//
}public OnGameModeInit()
{
geschenk=Menu:CreateMenu("~w~Waffen Geschenk",1,130,150,300);
SetMenuColumnHeader(geschenk,0,"Such dir ein Geschenk aus ^^");
AddMenuItem(geschenk,0," Messer");
AddMenuItem(geschenk,0," Schaufel");
AddMenuItem(geschenk,0," Tränen Gas");
AddMenuItem(geschenk,0," Feuerlöscher");
return 1;
}public OnPlayerSelectedMenuRow(playerid, row)
{
new Menu:Now;
Now=Menu:GetPlayerMenu(playerid);
if(Now==geschenk) {
TogglePlayerControllable(playerid,false); // Muss hier nicht "true"hin?Nach der Auswahl sollte er sich doch wieder bewegen können.
// ShowMenuForPlayer(geschenk,playerid); Hier liegt der Fehler.Du öffnest das Menu nochmal nachdem etwas im Menu geöffnet wird.
switch(row) {
case 0: {
SendClientMessage(playerid,COLOR_RED,"Waffen geschenk");
GivePlayerWeapon(playerid, 4, 1);
SendClientMessage(playerid, 0xAA3333AA, "Du hast das Messer genommen...");
SendClientMessageToAll(0x33AA33AA, "Jemand hat ein Messer genommen...");
}
case 1: {
SendClientMessage(playerid,COLOR_RED,"Waffen geschenk");
GivePlayerWeapon(playerid, 6, 1);
SendClientMessage(playerid, 0xAA3333AA, "Du hast die Schaufel genommen...");
SendClientMessageToAll(0x33AA33AA, "Jemand hat die Schaufel genommen...");
}
case 2: {
SendClientMessage(playerid,COLOR_RED,"Waffen geschenk");
GivePlayerWeapon(playerid, 17, 250);
SendClientMessage(playerid, 0xAA3333AA, "Du hast das Tränen Gas genommen...");
SendClientMessageToAll(0x33AA33AA, "Jemand hat das Tränen Gas genommen...");
}
case 3: {
SendClientMessage(playerid,COLOR_RED,"Waffen geschenk");
GivePlayerWeapon(playerid, 42, 1);
SendClientMessage(playerid, 0xAA3333AA, "Du hast dir den Feuerfoescher genommen...");
SendClientMessageToAll(0x33AA33AA, "Jemand hat den Feuerfoescher genommen...");
}
}
}
return 1;
}public OnPlayerSpawn(playerid)
{
TogglePlayerControllable(playerid,false);
ShowMenuForPlayer(geschenk,playerid);
return 1;
}public OnGameModeExit()
{
DestroyMenu(geschenk);
return 1;
} -
Schön und gut wenn du Tutorials erstellst aber solltest du dich dafür nicht etwas besser auskennen?
zB wofür steht hier...die 10 ?
Und wieso benutzt du hier
die "10" oder was auch immer nicht ?
Glaube nur ungern das der /me cmd von dir istNimms' nicht böse,will ja nur helfen
-
Und das ist zu schwer für dich 0o?
Das heisst doch nur das nicht richtig eingerückt wurde...Kein Script Fehler,es funktioniert trotzdem 100%. -
Du hast oben schon "new Menu:Weapon4;" vergessen.
-
AddStaticPickup funktioniert nur in OnGameModeInit oder OnFilterScriptInit
CreatePickup ist der mehr dynamisch.Die kannst du zB per cmd erstellen.Ich glaube das man die Pickups mit "createpickup"erstellt wurden wieder zerstören kann,(destroypickup) und die mit "addstaticpickup" nicht.
-
Nicht ausprobiert...Habe keine Lust Kordinaten zu sammeln ;P
forward Area51Check();public OnGameModeInit()
{
SetTimer("Area51Check",1000*1,1); //jede Sekunde wird gecheckt.....
return 1;
}stock IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy) //By Alex "Y_Less" Cole
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if (x > minx && x < maxx && y > miny && y < maxy) return 1;
return 0;
}public Area51Check() {
for(new i;i<MAX_PLAYERS;i++) {
if(IsPlayerInArea(i,minX,maxX,minY,maxY)){ //minX,maxX,minY,maxY sind die Cordinaten.Musst selber eintragen ;)
//Ist in Area51 also nix machen,oder?
}
else { //nicht in area51
new Float:h;
GetPlayerHealth(i,h);
SetPlayerHealth(i,h-15.0);//zieht 15hp ab
GameTextForPlayer(i,"~r~ Get Back into ~y~ Area51",3000,4);
}
}
return 1;
}Bei deinem Pickup problem weiss ich nicht.Eigentlich sollte es respawnen.
-
Zitat
new FloatHealth;
Das ist kein richtiges Float.
Floats erstellt man etwas anders
new Float:Health; -
Ja ne ist klar xD
Die Objekte werden für alle Player gleich gestreamt,nicht für jeden einzelnt ...
Es kommt bei dem ~150 Objekt Limit auch auf den Speicher an den ein Object benötigt...Ist auch nicht anders bei dem Vehicle Model Limit.Du redest wirres Zeug, das Objektelimit ist erstens schonmal garnicht auf exakt 150
Zweitens würde es absolut überhaupt keinen Sinn machen das Objektelimit mit der Anzahl der Spieler zu verknüpfen, da die Ressourcen so oder so auf dem Server verteilt werden müssen.
++ -
PRO SPIELER 150 Objekte
Im nächsten Leben.
#define MAX_OBJECTS 150 [a_samp.inc]
Auch wenn es 150 pro Player geben sollte,ist das noch lange nicht "soviele wie du willst"
150*200=30.000 ...
30.000 =! "So viele wie du willst"kk ty thx bbq bb