Er sagt dir das das #define MAX_PLAYERS schon existiert, deshalb nach #define MAX_PLAYERS im Script suchen und Löschen oder ein #undef MAX_PLAYERS nach der a_samp.inc machen dann wird das MAX_PLAYERS define aus der include sozusagen Gelöscht und dein MAX_PLAYERS define im Script zählt dann als das richtige.
Beiträge von Bluescreen
-
-
Es gab schon mal dazu einen Thread und eine Lösung: Objecte herausfinden und in der Serverlog wiedergeben.
-
Leite die Seite auf einen Webspace von dir und mach da irgendwelchen Inhalt von Konkurrenten rein (Die die Produkte Loben) und versuch unauffällig auf die Seite aufmerksam zu machen, nach einiger Zeit könnten sich die Typen bei dir melden und dir ein Angebot machen, aber wenn du sie Anschreibst werden sie höchstwahrscheinlich dir ein sehr kleines Angebot machen deshalb lieber warten bis sich die Typen bei dir melden dann kannst du ordentlich kassieren. Da du denen dann Druck machen kannst. Das ganze kann aber einige Zeit dauern, bis sie auf die Domain aufmerksam werden, aber Geduld Zahlt sich nach einiger Zeit aus.
-
Bei Stern TV hatten die gebracht das 50% mit höhstens 70% der versprochenen Geschwindigkeit surfen und 30% sogar nur mit der hälfte. :o
Wenn man auch etwas genauer Lesen würde steht überall "BIS 16.000 kbit/s" und nicht "AB 16.000 kbit/s" das ist ein gewaltiger Unterschied. Lese dir nächstes mal dein Vertrag bei deinem Anbieter durch dann merkst du es. -
Sicher das dich da keiner Veraschen will?
Gibt genug von denen die nur darauf warten das irgendwelche Leute das glauben und dann Bezahlen, schau nach ob die Kanzlei existiert, falls ja ruf an und Frag nach ob sie wirklich den Brief verschickt haben, heutzutage werden Kanzleien benutzt die auch existieren angeblich wurde dann der Brief von denen Verschickt in tatsächlich wurde er von irgendeinem Typ verschickt der an dein Geld will. (Falls du meinst das nur sowas per Mail passieren kann irrst du dich gewaltig, schon Zweimal erlebt) -
Natürlich so wie Jeff es gesagt hat mach am Anfang vom Timer public
new StartTime = GetTickCount();
rein und dann am Ende vom ganzen Code das einfügenprintf("Mein Code hat %dms gedauert.", GetTickCount() - StartTime);
So funktioniert das überall du kannst das in jedem public verwenden zum Beispiel sehen wie lange der Server braucht zum Starten etc.. -
Benutz die Funktion GetPlayerID
In deinem Fall:
new bot = GetPlayerID("startnpc");
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, bot);Wenn -1 rauskommt gibt es die ID nicht siehst du aber auch hier http://wiki.sa-mp.com/wiki/GetPlayerID
Und einfach die ID 0 zu benutzen bringt am Anfang etwas aber spätestens wenn es einen Neustart gibt und die Spieler schneller connecten als der Bot hat er nicht mehr ID 0.
-
Direkt darunter, zwar auch Global aber es funktionierte bisher immer ohne Probleme bei meinem anderen Script.
Du wirst es spätestens merken wenn mehrere Spieler auf deinem Script Spielen das es Bugs geben wird.Auch schon die "Z" Taste probiert bzw. die "N" evtl. die Flasche Taste gedrückt da an deinem Code nichts Falsch ist.
-
und wo hast du das hier Deklariert? (Davon habe ich gesprochen)
engine, lights, alarm, doors, bonnet, boot, objective
-
Schon mal daran gedacht das du Lights etc. Global definiert hast? Das heißt wenn ein anderer das Licht an macht wird deins aus gemacht wenn du es danach versuchst an zu machen. Deshalb Lights, etc. Lokal im Callback definieren, nicht Global.
-
Hast du den schon mal daran gedacht die Links mit einem URL-Shortner zu kürzen und nicht alles was du veröffentlichst hast da reinzupacken? Wie z.b dein Schwarzmarkt die neueste Version da reinzuklatschen reicht doch aus? Da hast du dann wieder genug Zeichen wenn du nur das nötigste rein machst.
-
Lifestyler: Noch nicht obwohl sie normalerweise auch am Wochenende fast immer Tickets beantworten (meine letzten Zwei), aber ich habe Zeit besonders da sie das ganze auf Freiwilliger Basis machen. (php-friends.de)
edit: Der Support hat ergeben das alle Drei Methoden funktionieren und es daran lag das ich die Subdomains ins leere geleitet habe (*) jetzt funktioniert es
-
Ich möchte mal etwas zu dem Server sagen, das schlimmste was man bei einem Freeroam Script machen kann ist ein Roleplay Script als Vorlage zu nehmen, nun gut nicht immer ist das eine schlechte Idee. Bei euch aber schon anstatt sich mit den zig Bugs auseinanderzusetzen und einfach komplett neu anzufangen und alles richtig zu Schreiben habt ihr einige Bugs, die Skinauswahl, der Textdraw mit der Leertaste etc. Was ich aber auch noch negativ finde das man sich einen Hunter einfach so nehmen kann ohne irgendeine Anforderung als Newbie damit kann man anderen Spielern den kompletten Spielspaß versauen und dadurch werden auch die Spieler abhauen, an dieser Stelle seid ihr dann aber selbst schuld. Nun gut die Stunt Maps sind nicht wirklich die tollsten und kreativsten, aber es ist etwas positives das ihr einiges an Stunt Maps habt.
Jetzt aber zu meinem größten Kritikpunkt, wieso lasst ihr ca. 10 Falsche Spieler connecten? Damit euer Server voller wirkt? Was bringt das bitteschön? Ihr verascht euch mit so einer Aktion selbst, den anscheinend wollt ihr Spieler drauf haben die ihr dann mit euren Admin Commands herumkommandieren könnt. Falls ihr jetzt kommt das ich das mit den Fake Spielern erfunden habe, bitteschön.
Spoiler anzeigen
Bild:
Spoiler anzeigen Bild²:
-
Ich habe vor einem Jahr ein Praktikum in der Basf in Ludwigshafen gemacht (als FISY) und die haben gesagt das die Mindestanforderung bei einem Hauptabschluss liegt wo in allen Hauptfächern die Note besser als Drei ist, aber der Fakt ist das jede Firma das anders handhabt, eine kleine Firma die sucht sich die besten raus, aber große Firmen nehmen nicht immer die besten sondern fördern auch die etwas schlechteren, vorausgesetzt du machst aktiv mit und verhaust den Einstellungstest nicht.
-
Wenn du eine neue Variable Speichern willst musst du einerseits in der Tabelle eine neue Spalte erstellen und hier einfach um eins erweitern z.B.:
mysql_format(mycon,query, sizeof(query), "UPDATE `User` SET `Geld` = %d,`Leben` = %.1f,`LastLogin` = '%e',`VarName` = '%i' WHERE `Name` = '%e'",User[playerid][Geld],User[playerid][Leben],User[playerid][LastLogin],User[playerid][DeineVar],User[playerid][Username]);
Wenn es ein Integer ist %i beutzen
Bei einem String (in mysql_format) %e benutzen das escapet dann automatisch den String
Und bei einer Float %f benutzenDu musst beachten das wenn du jetzt VarName benutzt es genauso (Groß- Kleinschreibung) in der Tabelle stehen muss
-
Tut mir leid hatte vergessen das LastLogin ein String ist:
-
Du musst User zu Name machen hatte das vertauscht mit dem Tabellen Namen:
-
@Andrzejxy': Hab mal schnell drüber geschaut einfach den Code als Query einmal ausführen lassen und die Tabelle ist da, müssten die richtigen Spalten sein falls nicht melde dich nochmal.
-
Gutes Tutorial, ist für Anfänger sehr Hilfreich das ganze kann man aber ohne Timer auch Abfragen.
Schau dir dazu den Streamer von Incognito an und folgende native:native CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1);
Damit kannst du dann ganz einfach im publicforward OnPlayerEnterDynamicArea(playerid, areaid);
forward OnPlayerLeaveDynamicArea(playerid, areaid);
Den No Dm Textdraw anzeigen lassen und evtl. eine Variable erstellen lassen wo du dann unter OnPlayerTakeDamag ob issuerid diese Variable auf 1 hat und dann Töten lassen falls er jemanden anderes Leben abzieht.Beispiel Code:
new bool:InNoDmZone[MAX_PLAYERS];
new NoDmArea;//Kann man auch in ein Array klatschen und dann in OnGameModeInit mit einer for loop Schleife alle No Dm Zonen erstellenpublic OnGameModeInit()
{
NoDmArea = CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, -1, -1, -1);
return 1;
}public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
if(issuerid != INVALID_PLAYER_ID)
{
if(InNoDmZone[issuerid] == true)
{
SetPlayerHealth(issuerid, 0);//Den Angreifer sterben lassen
}
}
return 1;
}public OnPlayerEnterDynamicArea(playerid, areaid)
{
if(areaid == NoDmArea)
{
InNoDmZone[playerid] = true;
}
return 1;
}public OnPlayerLeaveDynamicArea(playerid, areaid)
{
if(areaid == NoDmArea)
{
InNoDmZone[playerid] = false;
}
return 1;
}
Das ganze kann man natürlich sehr gut erweitern das der Angegriffene das Leben was er verloren hat zurück bekommt oder alle Areas in einen Array packen und dann Abfragen welche Area er betritt so braucht man nicht haufenweise Arbeit wenn man eine neue Area hinzufügt. Und du solltest vlt. noch ein Beispiel hinzufügen wenn man in der No Dm Area Deathmatch betreibt wie man das verhindern kann, ein Beispiel habe ich oben genannt. -
Habe es gerade mal getestet und der Timer läuft bei 5 Sekunden ca. 5 ms nach. Deshalb wenn du ungefähr 5 Sekunden haben willst auf ca. 4750 ms stellen.
Was ich noch herausgefunden habe das z.B. bei 2 Sekunden 200 ms Verzögerung auftritt, bei 10 Sekunden eine 1000 ms Verzögerung.
Falls jemand den Code will:Spoiler anzeigen new Time;
forward BlaBla();
public OnGameModeInit()
{
SetTimer("BlaBla", 5000, true);
Time = GetTickCount();
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}Spoiler anzeigen public BlaBla()
{
new EndTime = GetTickCount() - Time;
printf("%i",EndTime);
Time = GetTickCount();
}