Wie du aber siehste,ist im Beispielcode nirgendwo ein Text der in die Richtung "You are not an admin" geht ;).
Hast wohl noch ein Anderes Script am laufen, wo es wahrscheinlich schon einen /KICK Befehl gibt.
Beiträge von Goldkiller
-
-
Zitat
PVars:
Script wird nicht länger (Wenn auch nur ein paar Zeilen)
Schneller
Ich hoffe,mit dem "Script wird nicht länger" meinst du,die AMX Größe.Sonst wäre das ein schlechtes Argument,denn die Länge des Scriptes / Codes ist relativ.
Schneller sind die ebenfalls nicht.Die sind definitiv langsamer als Variablen ( enums ). -
Ich wollte sowas auch mal machen, fand die Idee schon seitdem MTA OpenSource wurde gut.
Bin mal gespannt ob das was wird. Würde zwar nicht primär einen Gamemode schreiben, sondern eher eine Art Bibliothek von guten System. Sei es für Checkpoints,Rennen, Immobilien oder sonst was. -
Dann können wir auch gleich damit aufhören,eigene Funktionen direkt aufzurufen,anstatt über CallLocal/RemoteFunction. Denn so verhindert wir ja das stoppen des Codes. Den Fehler zu beheben wäre aber leichter :P.
Vielleicht sind die Includes auch nicht im richtigen PAWNO Ordner. Kommt schon mal vor dass man das Server-Paket mehrmals installiert hat. Schau mal nach,dass auch wirklich die Datein auch wirklich im include Ordner liegen, von wo du auch pawno startest ( Oder halt wo pawncc.exe ist ).
http://goldkiller.kilu.de/SAMP/TS_7622.rar -
Jedoch rate ich dir davon ab so zu programmieren, denn dadurch verlierst du stark an überblick. So wie Goldkiller dir seine Variante gezeigt hat wäre auch nicht zu empfehlen, denn es kann zu Fehler führen, also zum Callback-Ausfall. Natürlich kann der Code hier oben auch zu einem Codeausfall führen ...
So wie jeder Andere Code ebenfalls "ausfallen" kann.Das Argument ist jetzt nicht so der Hit :pWie auch immer,zu TS.
Zitat(Wahrscheinlich ist auch, dass ich das falsch mache^^)
Du machst was falsch.Den unteren Teil aus dem Post hab Ich extra getestet.Es gibt auch keinen Grund,wieso es nicht funktionieren sollte.Denn an die Stelle wo du #include <irgendwas> einfügst, wird einfach der Inhalt der Datei hin kopiert.Templer hat es nochmal sehr ausführlich erklärt und es funktioniert ja auch so wie er es gezeigt hat. -
Schau mal nach,ob du nicht folgendes im Script hast:
DisableInteriorEnterExitsDie Shops sind normal immer da. Du hast irgendwas eingefügt,weshalb die entfernt werden.
-
http://wiki.sa-mp.com/wiki/Main_Page
http://wiki.sa-mp.com/wiki/GetPlayerHealth
new
Float:fHealth;
GetPlayerHealth(playerid,fHealth);
SetPlayerHealth(playerid, fHealth + 20.0 );Nur so nebenbei,
if(GetPlayerMoney(playerid) >= -50)
Wieso lässt du Leute bezahlen, die Schulden haben ? Das Frag nur ab ob der Spieler mehr Geld besitzt als -50. Nicht gerade logisch :p.if( GetPlayerMoney(playerid) >= 50)
{
new
Float:fHealth;
GivePlayerMoney(playerid,-50);
GetPlayerHealth(playerid,fHealth);
SetPlayerHealth(playerid, fHealth + 20.0 );
}SetPlayerShopName(playerid,"FDPIZA");
SetPlayerShopName(playerid,"FDBURG");
SetPlayerShopName(playerid,"FDCHICK");
SetPlayerShopName(playerid,"AMMUN1");
SetPlayerShopName(playerid,"AMMUN2");
SetPlayerShopName(playerid,"AMMUN3");
SetPlayerShopName(playerid,"AMMUN5");
Die Händler sind automatisch in den Läden, du brauchst den Code hier nicht. -
Nette Idee wie du es dort machst.Hab es selber noch nie ausprobiert so wie du es machst, mache es aber ähnlich:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
Vehicle_OnPlayerStateChange(playerid, newstate, oldstate);
if(Race_OnPlayerStateChange(playerid, newstate, oldstate)) return 1;
if(VehicleExp_OnPlayerStateChange(playerid, newstate, oldstate)) return 1;
if(Stunting_OnPlayerStateChange(playerid, newstate, oldstate)) return 1;
if(Tram_OnPlayerStateChange(playerid, newstate, oldstate)) return 1;
if(LieferS_OnPlayerStateChange(playerid, newstate, oldstate)) return 1;
if(Derby_OnPlayerStateChange(playerid, newstate, oldstate)) return 1;
return 1;
}
*_OnPlayerState liegt immer in der jeweiligen Include. Ist ebenfalls sehr übersichtlich, funktioniert auch reibungslos.Du musst irgendwas total falsch machen.Hab es ebend ausprobiert:
public OnGameModeInit()
{
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
#include <test/test>
#include <test/shoutout>
var--;
return 1;
}
Und die Datei ".../includes/Test/Test.inc":
printf("Hallo aus Test/Test.inc");
Und die Datei ".../includes/Test/Shoutout.inc":
printf("Und noch ein Shoutout");
new var;
var++;
var = 20;
Auch versteh Ich nicht wirklich deine Problembeschreibung. -
Habe es gestern extra noch probier,bevor Ich editiert hatte:
#include <a_samp>#define test1 6
#define test2 4main()
{
}public OnGameModeInit()
{
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
#if test1 == test2
printf("test1 == test2");
#else
printf("--------");
#endif
return 1;
}
Funktioniert ohne Probleme. -
Hätte nicht gedacht,dass man dabei eine Warnung bekommt.Aber gut ;).
Dann mach es mal so:
#if defined ServerID SERVERID_REALLIFE
#else
#endif#if defined <_NAME_> <_WERT_>//Edit: Ist quatsch, merk Ich gerade
So wird es aber klappen.
#if ServerID == SERVERID_REALLIFE
#else
#endif -
Wieso sollte es denn nicht funktionieren?
Es funktioniert genau so, wie du es machst.Wenn der Code kompiliert wird, wird var1 und var2 mit ihrem definiertem Wert ersetzt.Heisst also,da steht:
if(1 == 2) -
Zitat
Du kannst aber in der Server Konfiguration die Stream Rate umstellen und dadurch sieht man die Objekte erst wenn man aus dem Auto steigt ^^.
Die stream_rate hat damit nichts zu tun.Die gibt nur an, alle wieviel Ticks der Server alle wichtigen Daten ( Spieler,Fahrzeuge ( Objekte ? ) ) zum streamen neu berechnen soll.
Ein Blick auf das SA-MP Wiki hilft:Zitatstream_distance - The distance on the X,Y plane which server entities will stream in for connected players.
stream_rate - The number of milliseconds that must elapse before server entities stream distance is retested for each player.
Wenn überhaupt,dann mal die stream_distance bearbeiten. Die wirkt sich aber trotzdem nicht auf den Streamer von Incognito aus. -
Hey, was ist denn de beste Streamer? Ich hab den von Incognito, da laden manche Objecte erst wenn ich ausm Auto aussteige..
Ist ein SA:MP Problem.Da kann der Streamer nichts für. -
Die Logik ist aber nicht ganz richtig bei dir.
Angenommen ich spieleso:ZitatConnect auf den Server
Spawne
Sterbe
Totenkopfpickup wird erstellt. ( 1 )
Variable erhält DynamicPickup Wert
Spawne
Sterbe
Totenkopfpickup wird erstellt. ( 2 )
Variable erhält DynamicPickup Wert ( Alter Wert wird überschrieben )
Spawne
Sterbe
Totenkopfpickup wird erstellt. ( 3 )
Variable erhält DynamicPickup Wert ( Alter Wert wird überschrieben )
Spawne
Verlasse den Server
Zuletzt erstelltes Totenkopfpickup ( 3 ) wird zerstört.
Totenkopfpickup ( 1 ) und ( 2 ) sind immernoch vorhanden :p.
Solltest bevor du ein neues DynamicPickup ( Totenkopf ) erstellst,dass alte immer zerstören. Du benutzt ja nur 1 Variable, daher ein muss.// OnPlayerDeath
DestroyDynamicPickup(TotenKopf[playerid]);
TotenKopf[playerid] = CreateDynamicPickup(1254, 23, PlayerInfo[playerid][pTz], PlayerInfo[playerid][pTy], PlayerInfo[playerid][pTz], 0);ZitatFunktioniert nicht
Komischerweise auf dem Homeserver wo ich alleine bin funktioniert alles
aber auf dem Root nicht .... O.o
Dann liegt es vielleicht am Server der auf dem Root läuft.Vielleicht hast du dort andere Scripte laufen ( vllt Filterscripte, Bots ? ) , die sich bei den Pickups einmischen. Kann mir nicht vorstellen,dass es an dem Pickup-Typ liegt.Hab zwar noch nie 23 benutzt, aber Ich benutzt ebenfalls den Streamer nur mit Pickup-Typ 1 oder 2.Da funktioniert alles -
Dann solltest du vielleicht mal Stunden und Minuten deklarieren.
ZitatVersteht Ihr was ich meine?
Nicht 100%-ig
-
Es macht keinen Unterschied ob du sizeof() benutzt oder dann Interiors ( Variable oder als Define ).
Wenn es aber sein muss, dann zähl mal nach,ob Interiors der Anzahl an Zeilen entspricht von IN. Du hast 22 Einträge, heisst also, Interior müsste auch 22 sein. Ist Interior größer oder kleiner, musst es an die Array-Größe anpassen. -
Du kannst doch mit sizeof arbeiten.
sizeof(IN)
Anstatt Interiors könntest du dann sizeof(IN) benutzen. Hoffe mal, Ich hab die richtig verstanden. -
new Float:IN[Interiors][Int] =
Was ist denn Int ?
Als was ist Interiors definiert?Zitat(170) : error 052: multi-dimensional arrays must be fully initialized
Du musst beim initialisieren entweder für jeden Eintrag einen Wert angeben oder keinen.
Kann mir vorstellen,dass es funktioniert wenn du Interiors weg lässt.new Float:IN[][Int] =
Gibst du keine Größe an, so wird automatisch die größe ermittelt. -
floatround(Benzin, floatround_round);
Da wird wohl ein Fehler sein.floatround return den Wert der gerundet wurde als Integer.new
iBenzin;
iBenzin = floatround(Benzin, floatround_round);
TankstellenInfo[tanke][tLiter] -= float(iBenzin);
Möglich,dass du ein TagMismatch Warning bekommst.Kann ja schlecht wissen,ob tLiter ein Tag hat ( Float: ) oder nicht :p.//Edit:
Falls es nicht klappt,füg mal folgendes noch ein:Benzin = VehicleMaxTank(vv) - Gas[vv];
printf("Benzin %.1f", Benzin); -
Hab noch nie ein Gangwar - System geschrieben, glaube aber nicht, dass man selber einen Timer erstellen brauch.
http://wiki.sa-mp.com/wiki/GangZoneFlashForPlayer
http://wiki.sa-mp.com/wiki/GangZoneFlashForAll
http://wiki.sa-mp.com/wiki/GangZoneStopFlashForPlayer
http://wiki.sa-mp.com/wiki/GangZoneStopFlashForAll