if(strlen(..) > 2) // Mehr als 2 Zeichen
http://wiki.sa-mp.com/wiki/Strlen
Mit Operatoren zu arbeiten ist schneller
if(inputtext[2] == EOS)
oder
if(!inputtext[2])
oder obwohl das bei EOS ja in begriff ist
if(inputtext[2] == '\0')
if(strlen(..) > 2) // Mehr als 2 Zeichen
http://wiki.sa-mp.com/wiki/Strlen
Mit Operatoren zu arbeiten ist schneller
if(inputtext[2] == EOS)
oder
if(!inputtext[2])
oder obwohl das bei EOS ja in begriff ist
if(inputtext[2] == '\0')
Du kannst mit SetSpawnInfo arbeiten oder die position des spielers bei OnPlayerSpawn änderst und ihm die waffen gibst
Hallo liebe Brote!
Ich würde gerne den befehl /polizeitor mit der Taste H auslösen. Wie funktioniert das?
kommt drauf an bei ocmd oder anderen command prozessoren ist dies anders als bei dennen die bei OnPlayerCommandText aufgeführt werden.
Sollte der command sich unter OnPlayerCommandText befinden kannst du
CallLocalFunction("OnPlayerCommandText ","is",playerid,"/beispiel");
verwenden oder das auch direkt aufrufen
OnPlayerCommandText(playerid,"/beispiel");
Bei ocmd oder anderen Commandporzessoren ist das anders wie schon genannt es sind schon functionen daher hast du die möglichkeit
das direkt per funktionsdeklaration aufzurufen
ocmd_beispiel(playerid);
und auch die parameter dahinter kannst du auch noch dazu angeben
Zur taste h die findest du hier
http://wiki.sa-mp.com/wiki/Keys
du kannst auch dir den wert ausgeben lassen über OnPlayerKeyStateChange
Ja wie schon erwähnt musst du die movement Koordinaten ändern
MoveObject(lvpdtor1,1544.6999511719, -1630.9000244141, 13.099999427795,3);
hier auch die rotation verändern und generel ein wenig die x,y,z koordinaten nur um ein wenig.
MoveObject(objectid, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX = -1000.0, Float:RotY = -1000.0, Float:RotZ = -1000.0);
Zeig mal was aufgerufen wird in deiner funktion welche du über den timer aufrufst.
Zu dem veränderst du hier die koordinaten nicht
MoveObject(lvpdtor1,1544.6999511719, -1630.9000244141, 13.099999427795,3);
Doch ich weiß was du ausdrücken wolltest mit deinem Post deshalb habe ich auch "schau dir doch noch MoveObject an " dazu geschrieben.
xD und um nochmal auf klugscheißer zu machen du hast es immer noch geschrieben und nicht gesprochen. Aber ich sollte ruhig sein mit meiner Rechtschreibung
in dem Beitrag D:.
@ KTM doch das geht ebenfalls du brauchst nur 2 verschiedene Werte um abzuprüfen ob das Tor offen ist oder nicht.
@[DT]Beavis Aber ich könnte es auch ohne den Zeichen machen oder?
Du solltest dennoch die backtricks nicht weglassen ich bin jetzt zu faul die ganze erklärung nochmal hinzuschreiben kannst dir ja den beitrag von mir noch zusätzlich durchlesen.
Alles anzeigenganz simpler Fehler....
Medicschranke = CreateObject(968, 1185.599609375, -1363.4105224609, 13.325004577637, 0, 0, 272);
hier speicherst du die ID in Medicschranke
aber im Command sind folgende Zeilen:
Medicschranke = 1;
und
Medicschranke = 0;
Heißt soviel wie: Zuerst speicherst du die ID in new Medicschranke und anschließend überschreibst du den Inhalt von new Medicschranke im Command ---> ID ist nichtmehr in new Medicschranke gespeichert ----> Fehler
so sollte es funktionieren:
//Object
Medicschranke = CreateObject(968, 1185.599609375, -1363.4105224609, 13.325004577637, 0, 0, 272);
//variablen
new Medicschranke = INVALID_OBJECT_ID;
new Medicschranke_state;
//command
if(strcmp(cmd,"/Medicschranke", true) == 0)
{
if(PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4)
{
if(Medicschranke_state == 0)
{
MoveObject(Medicschranke,1185.599609375, -1363.4105224609, 13.325004577637, 0, 0, 272);
Medicschranke_state = 1;
}
else
{
MoveObject(Medicschranke,1185.6245117188, -1363.4083251953, 13.325004577637, 0, 269.49993896484, 272.75);
Medicschranke_state = 0;
}
}
else SendClientMessage(playerid,COLOR_RED," Du bist kein Medic");
return 1;
}
Doerfler du enttäuscht mich schau dir doch noch MoveObject an
MoveObject(objectid, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX = -1000.0, Float:RotY = -1000.0, Float:RotZ = -1000.0)
MoveObject(Medicschranke,1185.6245117188, -1363.4083251953, 13.325004577637, 0, 269.49993896484, 272.75);
Das böse ist das man die schranke um paar einheiten im zehntel oder tausenstel verändern muss und auch die geschwindigkeit anpassen
MoveObject(Medicschranke,1185.6245117188, -1363.4083251953, 13.325004577637, 0, 269.49993896484, 272.75);
MoveObject(Medicschranke,1185.6245117188, -1363.4083251953, 13.305004577637, 0,005, 269.49993896484, 272.75);
Das ganze ist ein wenig verzwickt das er kenne roationen annimmt aber nun gut ist ja auch verständlich
das würde ewig brauchen
Alles anzeigen
Was mir gerade aufgefallen ist, du hast da noch was vergessen, du hast da endif hingeschrieben, aber keine if Bedingung
So sollte das aussehen:
#if !defined _ALS_
forward public _PH_();
_PH_()<_PH_:unhooked>{}
_PH_()<_PH_:hooked>{}
_PH_()<>{}
#endif
Aber sonst, gute Arbeit 10/10!
mfg.
Jo ist mir auch aufgefallen das es oben gefehlt hab in der include ist es vorhanden ich hab nochmal alles überarbeitet und zu dem muss es wen schon
#if !defined _PH_ heißen wenn bei den defines auch _PH_ steht.
Alles anzeigenHabe ein Problem, kann mir jemand helfen? Neuste MySQL Version
Spoiler anzeigen SA-MP Dedicated Server
----------------------
v0.3x, (C)2005-2013 SA-MP Team
Spoiler anzeigen [19:23:16] filterscripts = "" (string)
[19:23:16]
[19:23:16] Server Plugins
[19:23:16] --------------
[19:23:16] Loading plugin: streamer
[19:23:16]
Spoiler anzeigen *** Streamer Plugin v2.6.1 by Incognito loaded ***
Spoiler anzeigen [19:23:16] Loaded.
[19:23:16] Loading plugin: mysql
[19:23:16]
Spoiler anzeigen > MySQL plugin R7 successfully loaded.
Spoiler anzeigen [19:23:16] Loaded.
[19:23:16] Loading plugin: sscanf
[19:23:16]
Spoiler anzeigen [19:23:16] ===============================
Spoiler anzeigen [19:23:16] sscanf plugin loaded.
Spoiler anzeigen [19:23:16] (c) 2009 Alex "Y_Less" Cole
Spoiler anzeigen [19:23:16] 0.3d-R2 500 Players "dnee"
Spoiler anzeigen [19:23:16] ===============================
Spoiler anzeigen [19:23:16] Loaded.
[19:23:16] Loading plugin: crashdetect
[19:23:16] crashdetect v4.5.1 is OK.
[19:23:16] Loaded.
[19:23:16] Loaded 4 plugins.
Spoiler anzeigen [19:23:16]
[19:23:16] Filterscripts
[19:23:16] ---------------
[19:23:16] Loaded 0 filterscripts.
Spoiler anzeigen [19:23:17] [debug] Run time error 19: "File or function is not found"
[19:23:17] [debug] The following natives are not registered:
[19:23:17] [debug] mysql_query
[19:23:17] [debug] mysql_fetch_int
[19:23:17] Script[gamemodes/Selfmade.amx]: Run time error 19: "File or function is not found"
[19:23:17] Number of vehicle models: 0
[19:23:17] [debug] mysql_query
[19:23:17] [debug] mysql_fetch_int
Die beiden funktionen gibt es nicht mehr es gibt nur noch mysql_function_query jedoch gibt es dazu ein define um immer noch mysql_query zu benutzen das ganze wird dann zu OnQueryFinish. und bei mysql_fetch_int gibt es jetzt cach_get_row_int
getriggert.
Du benutzt ganz einfach funktionen also natives die nicht existieren daher kommt der fehler.
Glückwunsch das du Erros bekommen hast musst sie nur noch beseitigen ahja also nebeninfo der spieler an sich kann immer noch schießen es ist nu rnicht synchronisiert mit den anderen. Nun gut mann könnte zusätzliche noch RemoveBuldingForPlayer verwenden nur sind die raketen für den spieler an der position für immer weg naja solange bis er neu ins spiel kommt vllt gibts ja ein möglichkeit das ganze auch ihrgend wie zu umschiffen.
Alles anzeigen
Was für ein Müll?
Es gibt zwanzig Möglichkeiten (1 bis 20), warum sollte dann die Chance die 1 zu erhalten 20% sein? 5% pro Möglichkeit.
new Zufall=random(100);
if(Zufall>=1&&Zufall<=5) { ... } //5%
else if(Zufall>=6&&Zufall<=15) { ... } //10%
else if(Zufall>=16&&Zufall<=100) { ... }//85%
Bist du dir sicher das du ab 1 anfangen willst zu zählen und bis 100 gehen möchtest ?.
Da random(100) dir die zahlen zwischen 0 - 99 ausspuckt
???Was denn nun?
Hier das wird dir was erleichtern
Es hat die möglichkeit bei OnPlayerUpdate 0 zurück zu geben dann kann der spieler zwar schießen jedoch sieht nur er das.
Danke BlackAce mein Bro
Danke, habe ich verstanden, kannst du mir von deinem Filterscript oder was es ist, den Link schicken.
Ich bekomme es sonst so leider nicht hin.
Erstmal ein recht herzlichen danke für deine Hilfe.
MfG
Hier bitte http://forum.sa-mp.com/showthread.php?t=376758 installations beschreibung findest du unten das geht nur auf deinem homeserver und weiteres gibt eigentlich nicht zu erwähnen
Such doch nach den Scanlines und füg diese als muster hinzu Bearbeiten und muster hinzufügen
hier größe 18 auf 18
http://mushir.deviantart.com/a…ne-pattern-set-2-21963688
und das ganz links unten hinzufügen das sollte es sein
Dann muss ich sie also nur außerhalb (wenn ich sie nicht möchte) nur verstecken?
2 dumme fragen noch, ich weis, aber gibt es dort eine Funktion um sie wieder zu aufzuzeigen?
2te weißt du wie ich die Ränder richtig setzen kann, ich bezweifle das die richtig sind und mit dem TD Filterscript geht es nicht.
MfG und danke im voraus.
Ja es ist ein globales textdraw warum auch immer neu erstellen ? ist ja unnötig.
Ja die funktion hast du benutzt
Zum anzeigen für einen spieler
TextDrawShowForPlayer(playerid,SchwarzerRandUnten);
zum verstecken
TextDrawHideForPlayer(playerid,SchwarzerRandUnten);
Also ich benutze den von ipleomax du kannst das textdraw verschieben un dgrößer machen es in die
breite ziehen geht natürlich auch in dem du die werte bei TextdrawCreate veränderst also nach links verschieben
dazu den x wert verkleinern und die breite noch erhöhen bei dir hier
TextDrawLetterSize auch den x wert veränder(erhöhen)
erstell doch das ganze unter
OnGameModeInit
SchwarzerRandOben = TextDrawCreate(1.0,430,"");
TextDrawUseBox(SchwarzerRandOben,1);
TextDrawBoxColor(SchwarzerRandOben,0x000000AA);
TextDrawLetterSize(SchwarzerRandOben,640,360);
SchwarzerRandUnten = TextDrawCreate(1.0,430,"");
TextDrawUseBox(SchwarzerRandUnten,1);
TextDrawBoxColor(SchwarzerRandUnten,0x000000AA);
TextDrawLetterSize(SchwarzerRandUnten,240,360);
Zu dem reicht es auch wenn du das ganze auch nur einmal anzeigen lässt
TextDrawShowForPlayer(playerid,SchwarzerRandUnten);
TextDrawShowForPlayer(playerid,SchwarzerRandOben);
kannst ja noch das else zu if(TutTimer[playerid] >= 1)
ergänzen wo du das textdraw anzeigen lässt und dann lässt du die variabel ganz unten hochzählen
zu dem lässt du das ganze gleich wieder zerstören
und zerstör es nicht lass es einfach nicht anzeigen also versteck es wieder vor dem spieler
else if(TutTime[playerid] == 27)
{
KillTimer(TutTimer[playerid]);
TutTime[playerid] = -1;
TogglePlayerControllable(playerid,true);
GameTextForPlayer(playerid,"~g~Lalala!",1500,1);
SetPlayerCheckpoint(playerid,-1350.4546,2059.6667,52.4850,3);
TextDrawHideForPlayer(playerid,SchwarzerRandUnten);
TextDrawHideForPlayer(playerid,SchwarzerRandOben);
}
MYSQL_HOST
MYSQL_USER
MYSQL_PASS
MYSQL_DATABASE
Ich meine diesen Daten, wo stehen diese genau ? bzw. wo steht der HOST , USER , etc. ?
vllt ist das direkt vor meiner nase , aber ich finde das ersnthaft nicht
Hier ich habs dir aufgemalt