Hallo
Hau mal in OnPlayerDisconnect() ein paar printfs() rein, um zu schauen wie weit er kommt und dann kannst Du nach und nach den Fehler eingrenzen. Ich geh aber davon aus, dass Du nur die kompilierte .amx hast und nicht den Sourcecode ?
Hallo
Hau mal in OnPlayerDisconnect() ein paar printfs() rein, um zu schauen wie weit er kommt und dann kannst Du nach und nach den Fehler eingrenzen. Ich geh aber davon aus, dass Du nur die kompilierte .amx hast und nicht den Sourcecode ?
Hallo
Ah jetzt ist der Sinn schon ganz anderst, dass ist eine "Abbruchfunktion" wegen einem zu kurzen Passwort (Ich dachte Du fragst ab, ob das Passwort länger als 4 ist und registirerst dann, wenn es kürzer als 4 ist kommt ein else Block, es ist aber so das Du den Dialog nochmals öffnet wenn es zu kurz ist).
Mach aus
bitte
Ansonsten kannst Du dich nur mit einem Passwort kürzer als 4 registrieren
Hi
Zeig mal die Funktion/Codeblock wo die DialogID gehandhabt wird. Meines Wissens darf man zudem nicht 2 Mal diesselbe DialogID verwenden, mach also aus dem 2.Dialog die 14601
Registrierungsaufforderung: 14600
Handhabund des Dialogs: 14601 oder Aufruf des Dialogs ausserhalb von 14600
Hallo
Sollen die Fahrzeuge garnicht mehr neu spawnen oder immer an der Stelle wo sie vor dem Respawnen standen (Schlussendlich läuft das aufs gleiche hinaus). Entweder kannst Du die Respawnzeit sehr hoch setzen oder Du verwendest Koordinaten. Weiss nicht mehr ob ein Intervall Respawn von Fahrzeugen OnVehicleDeath() aufruft, wenn ja, kannst Du dort die Koordinaten nehmen und bei OnVehicleSpawn SetVehiclePos benützen und das Fahrzeug zur "Todesposition" zurück teleportieren.
Bessere Lösung ist jedenfalls eine höhe Respawntime zu nehmen, aber dann stehen dir mit der Zeit alle Fahrzeuge rum. Das wäe aber per Timer und Hochcounten der unbenutzten Zeit verhinderbar.
Gruss
Hi
Am Anfang haste ja die SA Karte und eine gelbe Route (aus Punkten). Wie haste das realisiert ?
Gruss
Hallo
Ein boolscher Wert kann 2 Zustände haben: true und false. Was anderes in Form eines Integer/Zahl gibt es nicht. Entweder Du änderst den datentyp der Variable in einen Integer (also bool: weg) oder Du verwendest nur boolsche Werte.
Gruss
Hallo
Such doch im GF danach (Denke mal nach strcmp Vergleich mit /givegun) und kipp da die 42 raus.
@TheFreak man könnte die Namen doch auch per Cronjob immer auf die Blacklist für Usernamen hauen (WBB intern)?
b2t
Wahrscheinlich werden dann gewisse Threads zerissen, da der Account vom Usernamen, welcher evt. Threadstarter ist gelöscht wird. Evt erscheint dieser Beitrag dann von einem Gast oder wenn er mitgelöscht wird, ist er weg, was kontextmässig unpassend ist.
Gruss
Hallo
Sorry hab letztens vor nem halben Jahr in Pawn programmiert, hoffe keine C Fehler gemacht zu haben. Hier eine mögliche Version (Beachte bitte Falloff, sprich den Hinweis oben). Aus dem Kopf:
new VehicleAdminStatus[MAX_VEHICLES];
COMMAND:makeadminveh(playerid, params)
{
#pragma unused params
if(isPlayerAdmin(playerid) && isPlayerInVehicle(playerid))
{
new vehicleid = GetPlayerVehicleID(playerid);
VehicleAdminStatus[vehicleid] = true;
}
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
if(isPlayerAdmin(playerid) && VehicleAdminStatus[vehicleid])
{
VehicleAdminStatus[vehicleid] = false;
DestroyVehicle(vehicleid);
}
return 1;
}
Alles anzeigen
Gruss
Hi
Dafür gibts ein nettes Callback: http://wiki.sa-mp.com/wiki/OnPlayerExitVehicle, jedoch mit dem Verweis:
ZitatImportant Note: Not called if the player falls off a bike or is removed from a vehicle by other means such as using SetPlayerPos. You must use OnPlayerStateChange and check if their old state is PLAYER_STATE_DRIVER or PLAYER_STATE_PASSENGER.
Erstell einen Befehl welcher ein Fahrzeug als Fahrzeugadmin markiert (GLobales Array für MAX_VEHICLES) und setzt dort einen Wert, kannst ja den Datentyp bool nehmen, Beim Verlassen fragste mithilfe der playerid und der vehicleid ab, ob es sich um einen Admin und ein Adminfahrzeug handelt, löscht das fahrzeug und resettest den Wert im Array.
Gruss
Hallo
Also grob wie folgt:
1.) Du benötigst ein Befehlssystem und ein Parametersplitter. Empfehlenswert sind folgende Tutorials:
[ SCRIPTING ] Commands mit Parametern
[ SCRIPTING ] sscanf 2.0
2.) Jetzt scriptest Du einen Befehl, mit welchem der Spieler seine DM Gruppe auswählen kann. Hierfür verwendest Du eine "Globale Variable", also ein Array mit der Grösse MAX_PLAYER(S) (Array --> Google)
3.) Du schreibst eine Funktion die bei diesem Befehl aufgerufen wird und denn Spieler an die bestimmte Position setzt (je nach ID/Wert)
4.) Diese Funktion rufst Du auch auf, wenn OnPlayerSpawn() aufgerufen wird und sich der Spieler im DM befindet - so vermeidest Du doppelten Code
Nebenbei sei dir besonders erwähnt, dass dir nichts in den Mund geflogen kommt. Tönt zwar hart, ist aber so. Selber lernen ist Gold wert.
Gruss
Hallo
Mit ID meinte ich einen Wert, welcher vom Spieler sagt, zu welchem Team gehört. Du machst zB einen Befehl , mit welchem man sein Team auswählen kann. Einen Wert deklarieren und 0 zuweisen wird immer in case 0 enden.
Gruss
Hallo
Poste doch mal deinen Code aus dem Tutorial, entweder mit den [code] ... [/ code] oder als Pastebin Link
Gruss
Hallo
Je nach Gruppe hat diese Person eine ID (Polizei, Terrorist etc.). Du kannst dann unter OnPlayerSpawn() die Funktion SetPlayerPos() verwenden und denn Spieler an Position XYZ portieren.
http://wiki.sa-mp.com/wiki/OnPlayerSpawn
http://wiki.sa-mp.com/wiki/SetPlayerPos
public OnPlayerSpawn(playerid)
{
new id = 0;// id = Gruppenid -> Spielervariable
switch(id)
{
case 0: // Polizei
{
SetPlayerPos(playerid,0.0,0.0,3.0);
}
case 1: // Terrorist
{
SetPlayerPos(playerid,0.0,0.0,3.0);
}
}
return 1;
}
Alles anzeigen
Gruss
Edit:
Du kannst optional noch SetPlayerSkin, GivePlayerWeapon und SetPlayerArmour benutzen, um das ganze realistischer zu machen
Hässlich, passt total nicht ins Spiel rein, benutz nicht nur eine Farbe, sondern mehrere und evt eine Textdraw als Hintergrund nehmen ?
Hallo
Ja, frag einfach ab, was für einen Wert GET hat, dann kannst Du zB ein Template öffnen, dort nach einem String suchen, diesen mit deinem Wunschinhalt ersetzten und das ganze per echo laden, kann dir sonst am Montag mal ein Beispiel schicken
Mach dir zudem eine Styledatei, welche Du per include ladne kannst
Gruss Simon