Beiträge von Goldkiller
-
-
Ich hab es auch so verstanden wie AdnaN,
new
bool:bClassRequestBlock;
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
if(bClassRequestBlock == true) {
// vllt SetSpawnInfo(...)
SpawnPlayer(playerid);
return 0;
}
return 1;
}
Müsstest dann nur ebend über einen Timer oder sonstiges bClassRequestBlock je nachdem auf true oder false setzten. -
Das wird doch wohl kaum einer einfach so herrunter scripten, da es nicht einfach in 5Minuten fertig ist.
Außerdem ist es ein Scriptwunsch,deswegen verschiebe Ich mal
-
Wofür zur Hölle braucht man in 0.3b einen objekt streamer ?
Au jaaa, klasse Idee...
Schlimm genug dass überhaupt Daten an ihn übertragen werden -
Zitat
GTA San Andreas\text
Dort nennst du die spanish.gxt -> old_spanish.gxt
Dann kopierst du german.gxt und nennst die -> spanish.gxtSollte dann auf Deutsch sein.
-
7 + MAX_PLAYER_NAME + 3 + 128 + 1
Okay.
format(string, sizeof(string), "[Chat][%s]: %s", pname, text); // String formatieren
"[Chat][" - 7
%s wird der SpielerName sein,das maximal die Länge von MAX_PLAYER_NAME hat. ist zzT 24
"]: " - 3
%s ist der Chattext, der kann maximal 128 Zeichen sein
1 für '\0', Null - Terminator.
Macht also Insgesamt eine String-Größe von 163 ausreichend ;).Dennoch ist fraglich ob es ein Tutorial im eigentlichem Sinne ist :/.
-
Zitat von Kalcor
http://forum.sa-mp.com/showthread.php?t=167003
SA-MP 0.3b RC2
Note:This is a test release for server owners (RC). The full release will come once we have checked there are no major bugs.
Due to a security issue that requires an immediate update to the SA-MP cilent and server, SA-MP version 0.3b is being fast-tracked to release. We are making an unrestricted client/server available for server owners to start testing their scripts. You will at least need to recompile your server script with the latest includes. Expect documentation on the scripting changes to appear on the SA-MP wiki soon.
Here is an overview of the updates in 0.3b
Updates for players
- Important client security updates
- Updates and fixes to the SA-MP server browser, including host name lookups for your favorites and samp:// URL handling.
- Improved player and animation syncing
- Chat logging
- Chat time-stamping with the /timestamp command
- Files, including screenshots, now save to the GTA San Andreas User Files folder
- No restrictions on screen resolution size
- Any frame limiter changes are now saved
- Several crash fixesUpdates for servers
- New vehicle velocity and rotation functions
- Ability to track applied animations
- Players can be scripted to hold objects
- A threaded HTTP client for pawn (beta)
- New object limit of 400
- The ability to change the draw distance of objects (up to 300 units)
- NPCs can now record custom set animations
- Increased PVar lookup speed
- Many bug fixesThings server owners need to know
- CreateObject/CreatePlayerObject now have a default parameter for draw distance as the last parameter. You do not need to change any of your code, although you must at least recompile your script with the 0.3b pawn includes, otherwise your objects will not show. This new addition may break existing plugin-based streamers.
- We have found that changing the draw distance of objects that contain lights or particles can cause crashes or fps lag.Other types of bug fixes and requested features
As mentioned above, there is a security issue that needs to be patched immediately. I know there are servers owners that have bugs which effect their script, or want a specific feature for their server. These things will have to be put on hold until any future release. Please be understanding about this fact and only post bug reports in 0.3b if they are new bugs and may prevent people from being able to play the game properly.
SA-MP 0.3b RC1_1 files
RC1_1 Client
RC1_1 Server Windows/Scripting
RC1_1 Server linuxSA-MP 0.3b RC2 files
Updates
0.3b RC2 client and server update
- Made it so GetPlayerAnimationIndex returns all player animations, not just those used with ApplyAnimation
- Added /headmove command to disable/enable player head movements locally
- Improvements to GetPlayerWeaponData and GetPlayerAmmo
- Fixed (hopefully) any crashes from SetPlayerHoldingObject
- Negative player score in the browser will show as 0
- Fixed ApplyAnimation not working correctly on NPCsImportant: ApplyAnimation/ClearAnimations Scripting functions ApplyAnimation/ClearAnimations now have a default parameter 'forcesync' at the end, which defaults to 0. You will not need to change your code, however any script using ApplyAnimation/ClearAnimations must be recompiled with the latest SA-MP pawn includes. In most cases you would not need to use the 'forcesync' parameter since players sync animations themselves. The 'forcesync' parameter can force all players who can see 'playerid' to play the animation regardless of whether the player is performing that animation. This is useful in circumstances where the player can't sync the animation themselves. For example, they might be alt-tabbed.
RC2 Client
RC2 Server Windows/Scripting
RC2 Server linux0.3b RC1_2 minor client update
- Fixes a registry issue where the server browser may display errors if a previous version of SA-MP hadn't been installed
- Fixes players might move remotely if they're alt-tabbed
- Fixes a connection problem effecting a some clientsPlease note: Your saved favorites file is located in a different folder between 0.3a and 0.3b. If you switch to 0.3b and back to 0.3a, you might lose your favorites list. It is recommended that you 'Export' your favorites before installing 0.3b.
RC1_2 Client
RC1_1 Server Windows/Scripting
RC1_1 Server linux -
new gebenkills;
if(sscanf(params, "d", gebenkills))
{
return SendClientMessage(playerid,COLOR_RED,"Benutzung: /setmode [Kills]");
}
else
{
// gebenkills = Givenkills; // falsche Reihenfolge
Givenkills = gebenkills ; // richtig
} -
War doch ziemlich deutlich was du machen sollst.
new
object_array[2];// Wo du die Objecte erstellen willst
object_array[0] = CreateObject(3666, 359.63891601563, -2014.3648681641, 8.6243009567261, 0, 0, 0);
object_array[1] = CreateObject(3666, 359.63305664063, -2015.3781738281, 8.6240301132202, 0, 0, 0);// Funktion zum verschieben.Solltest du dann um Parameter für X, Y, Z, Array ( und vllt auch Speed ) erweitern.
stock MoveBlabla() {
for(new i ; i < sizeof(object_array) ; i++) {
MoveObject(object_array[i],0.0,0.0,-10.0,1.0);
}
return 1;
} -
new File:logfile=fopen("/logs.txt", io_append); // Datei öffnen und in der Variable "logfile" speichern
new hour, minute, second, string[800]; // Zeit Variablen und die string-Variable
Du nimmst an, dass die Datei schon existiert.Außerdem ist 800 Zellen ziemlich viel für ein String.
Wäre besser du prüfst noch mit einer if() - Abfrage ob logfile wirklich etwas enthält.format(string, sizeof(string), "[%d:%d]%s\n", hour, minute, inputtext); // String formatieren
Ich würde dir empfehlen \r\n zu benutzten.
\r - Legt fest das auch wirklich der Writer am Anfang der Zeile ist.
\n - Springt in eine neue Zeile.new string[500], pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname)); // Spielername auslesen
format(string, sizeof(string), "[Chat][%s]: %s", pname, text); // String formatieren
log(string); // Log-Funktion aufrufen
Da sind 500Zellen auch viel zu viel.Der Text wird niemals länger als 7 + MAX_PLAYER_NAME + 3 + 128 + 1.Fazit erspar Ich mir ;).
-
EnableStuntBonusForAll(false)
oder
EnableStuntBonusForPlayer(playerid,false) -
public changename()
{
new
string[64];
server_name++;
if(server_name >= MAX_SERVER_NAMES) {
server_name = 0;
}
format(string,sizeof(string),"hostname %s",server_names[server_name]);
SendRconCommand(string);
return 1;
}Find Ich ja persöhnlich sehr geil
if(server_name >= MAX_SERVER_NAMES-1)
server_name = -1;
if(server_name < MAX_SERVER_NAMES-1)
server_name++; -
Das wird aber so nicht funktionieren,denn
Integer != String
new type[5]; // Ist ein String
if(sscanf(params, "d",type)) { // Hier sagst du aber Integer
return SendClientMessage(playerid,COLOR_LIGHTRED,"USAGE: /linie [NUMMER] SF = 1 | LV = 2 | LS = 3");
}
if (!strcmp(type, "1", true, 1)) // Hier vergleichst du es aber wieder als String
{
// was soll dann kommen wenn type = 1 ist
}
else if (!strcmp(type, "1t", true, 1)) // Hier vergleichst du es auch als String
{
// was soll dann kommen wenn type =1t ist
}
else
{
// was soll dann kommen wenn type nichts von beiden ist
}
} -
Kommt auf den Zweck teilweise an.
Ich hab noch nie PVars benutzt, weil Ich die auch noch nie gebraucht habe. Arrays sind mir da viel lieber.
Irgendwo im Tutorialbereich gibt es einen Thread ( vllt auch Post ) der die Vorteile von PVars aufzählt. Kannst dich da ja mal schlau machen ;). -
Ist ja super, aber du nimmst an, dass jeder auch SII benutzt.Zumindenst verwendest du die einzelnen Funktionen dieses Includes in deinen Funktionen.
Sehr gut gescriptet sind die auch nicht unbedingt, sorry//edit: Ich erspar dir mal lieber, deine Funktionen auseinander zu nehmen :-X
-
Error: C:\Users\KKM\Desktop\samp03asvr_R8_win32\gamemodes\bRL.pwn(2260) : warning 208: function with tag result used before definition, forcing reparse
Das Problem heisst soviel wie, du benutzt dieses Funktion die ein Tag enthalt ( Float ) bevor du dafür die Definition angegebn hast.
Bedeutet, du könntest um es zu fixen die Funktion im Kopf deines Scriptes einfügen, so dass die Definition vorhanden ist bevor du die Funktion irgendwo im Script benutzt. -
Kann ich doch nicht wissen was du schneller scripten kannst :p.
Wenn du sowieso ein Racescript erstellen sollst ( für einen Kunden ) ,sieht es damit:
Float:rCP1[3],
Float:rCP2[3],
Float:rCP3[3],
Float:rCP4[3],
Float:rCP5[3],
Float:rCP6[3],
Float:rCP7[3],
Float:rCP8[3],
Float:rCP9[3],
Float:rCP10[3],
Float:rCP11[3],
Float:rCP12[3],
Float:rCP13[3],
Float:rCP14[3],
Float:rCP15[3],
Float:rCP16[3],
Float:rCP17[3],
Float:rCP18[3],
Float:rCP19[3],
Float:rCP20[3],
aber nicht sonderlich dynamisch aus,um ganz einfach weitere Rennen einzufügen.Da solltest du lieber deinem Kunden ein gutes Produkt verkaufen, das leicht zu bedienen ist. -
Wenn die Datei weg ist,ist sie nun mal weg.Am besten man macht regelmäßig Backups.Mache Server-Hoster machen regelmäßig Backups, oder frag doch bei demjenigen nach,der die Checkpointsliste erstellt hat.
Sonst kann man da nicht viel machen.Float:rCP1[3],
Float:rCP2[3],
Float:rCP3[3],
Float:rCP4[3],
Float:rCP5[3],
Float:rCP6[3],
Float:rCP7[3],
Float:rCP8[3],
Float:rCP9[3],
Float:rCP10[3],
Float:rCP11[3],
Float:rCP12[3],
Float:rCP13[3],
Float:rCP14[3],
Float:rCP15[3],
Float:rCP16[3],
Float:rCP17[3],
Float:rCP18[3],
Float:rCP19[3],
Float:rCP20[3],
Krass. -
Komisch.
Vielleicht liegt es daran,dass du die Variable nicht als Globale Variable ( über main() bspw ) definiert hast sondern lediglich local und deswegen der Fehler auftritt.
Ich bekomme nämlich keine Fehlermeldung wenn Ich mir ein Script mit deinem Code zusammenbaue . -
Deine DCMD_REGISTER Funktion ist eindeutig Fehlerhaft :p.
dcmd_register(playerid,params[])
{ // <-- Fehlte
//----------------Registrieren---------------------
if(loggedin[playerid] != 0)
{
SendClientMessage(playerid,COLOR_GREY,"Du bist bereits registriert.");
return 1;
}
new msg[200];
new pname[MAX_PLAYER_NAME]; // MAX_PLAYER_NAME anstatt 40
GetPlayerName(playerid,pname,sizeof(pname));
format(msg,sizeof(msg),"Willkommen %s.\n\nDu kannst dich jetzt registrieren.\nGib bitte dein gewünschtes Passwort\nein.",pname);
ShowPlayerDialog(playerid, 0,DIALOG_STYLE_INPUT, "Registrierung:", msg, "Bestätigen", "Abbrechen");
return 1;
}
/* Wird nicht gebraucht,führt zu Fehlern
return 1;
}
*/if(loggedin(playerid) != 0)
loggedin ist ein Array,keine Funktion.Daher kann es nicht mit ( ) sein