kannst du nochmal genau dein Problem beschreiben ich hab mir deinen Satz 3 mal durch gelesen und werde immer noch nicht schlau draus , wo
genau dein Problem liegt.
Beiträge von IPrototypeI
-
-
Was möchtest du genau damit erreichen willst du das leben ausgeben , welches jedoch um 1 erhöht dargestellt wird oder
möchtest du das auf einen selbstgeschriebenen Command übertragen um das leben des Spielers zu setten. -
Alles anzeigen
Hey,
Ich will das wenn man sich registriert man sein geburtsdatum eingeben muss. TT.MM.JJJJ
Aber ich bekomme es nicht hin es zu speichern, bzw. dann in einem Befehl auszulesen.Kann mir jemand helfen? Soll keine Kopiervorlage sein sondern nur wie ich es machen muss.
Danke schonmal
MfG Tomsen
Das dies zur Zeit ziemlich oft aufkommt und mich auch schon paar deswegen angeschrieben haben poste ich dir auch mal mein code beispiel.
Hier wird der string gesplittet und umgewandelt in variabeln welche darauf hin verglichen werden sollte eine Zahl falsch sein beziehungsweise aus dem rahmen fallen
wird hier die Fehler Meldung ausgegeben.Solltest du dich fragen wie man daraus noch das alter bekommt siehe bei Codeschnipsel rein dort hatte Hauk seine kleine funktion gepostet und ich meine Dazu hin auch.
Code
Alles anzeigenocmd:string(playerid,params[]) { new test1245[30],Date[3]; if(sscanf(params,"s[30]",test1245))return SendClientMessage(playerid,-1,"Benutze /string [text]"); new var0, var1, var2; sscanf(test1245, "p<.>iii", var0, var1, var2); if(var0 > 31 || var0 <= 0)return SendClientMessage(playerid,-1,"Eingabe Falsch1"); if(var1 > 12 || var1 <= 0)return SendClientMessage(playerid,-1,"Eingabe Falsch2"); new Year, Month, Day; getdate(Year, Month, Day); if(var2 > Year || var2 < 1900)return SendClientMessage(playerid,-1,"Eingabe Falsch7"); new string[64]; printf("%d . %d . %d",var0, var1, var2); format(string,64,"Datum ist %d.%d.%d",var0, var1, var2); SendClientMessage(playerid,-1,string); return 1; } -
Hi,
Bei
"OnPlayerRequestClass" machst du einfach:
SpawnPlayer(playerid);MfG
Das ist das dümmste was du machen kannst du wirst als spieler sofort gespawnt.
benutze
TogglePlayerSpectating
und ein Timer
danach
musst du die SpawnInformationen setzenSetSpawnInfo
-
-
Analogtacho
Mit was machst du den strich ?
oder wo besteht genau dein Problem in der Bewegung das sich der Tacho nicht zur entsprechenden geschwindigkeit bewegt oder das er sich falsch bewegt .Mit LIMIT gibt du die maximale zahl an ausgelesenen Datensätzen an zum Beispiel bei
LIMIT 3 werden nur 3 Datensätze in der Tabelle ausgelesen.LIMIT 0,1 sagt aus das 1 Datensatz ab dem 0ten Datensatz ausgelesen wird anderes Beispiel dazu wäre
LIMIT 6,8 Hier werden 8 Datensätze ab dem 6 Datensatz ausgelesen
-
Tach erstmal.
Wie ist es möglich abgerundete Textdraws zu erstellen?
Hier ein Beispiel:
http://www.youtube.com/watch?f…r_embedded&v=qzPRl_WyhLQ#!schaus dir doch einfach mal an
http://www.mediafire.com/?sbbuj1rz0icf9r2
ich weiß jedoch nicht wie dies genau gemacht wurde ich denk jedoch eher mit sprites
oder mit runden texten wie ( oder O oder 0 etc -
Hier bitte der command stammt noch aus meinem alten GF edit ich hab das ganze script damals umgeschrieben
Code
Alles anzeigenocmd:repair(playerid,params[]) { new pID, preis, pName[MAX_PLAYER_NAME], pIDName[MAX_PLAYER_NAME], string[64]; if(sscanf(params,"ud",pID,preis)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /repair [playerid] [Preis]"); if(PlayerInfo[playerid][pLeader] == 18 || PlayerInfo[playerid][pMember] == 18){ if(preis<1|| preis>2000) return SendClientMessage(playerid, COLOR_GREY, "Der Preis darf nicht unter 1 oder über 99999 liegen!"); if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist Offline."); if(!ProxDetectorS(8.0, playerid, pID)&& IsPlayerInAnyVehicle(pID)) return SendClientMessage(playerid,COLOR_WHITE,"Dieser Spieler ist nicht in deiner Nähe / nicht in seinem Auto."); if(pID == playerid) return SendClientMessage(playerid,COLOR_WHITE,"Du kannst das nicht machen"); GetPlayerName(pID, pIDName, sizeof(pIDName)); GetPlayerName(playerid, pName, sizeof(pName)); format(string, sizeof(string), "* Du hast %s die Reparatur seines Wagens für $%d angeboten .",pIDName,preis); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); format(string, sizeof(string), "* Mechaniker %s bietet dir eine Reparatur deines Wagens für $%d an, (gib /accept repair) ein um anzunehmen.",pName,preis); SendClientMessage(pID, COLOR_LIGHTBLUE, string); RepairOffer[pID] = playerid; RepairPrice[pID] = preis; }else{ return SendClientMessage(playerid, COLOR_GREY, "Du bist kein KFZ Mechaniker / Feuerwehrmann!");} return 1; }ein fehler sehe ich nicht jedoch denk ich du bist nicht duty oder nicht in der fraktion
daher kannst du dazu noch zwei else abfragen rein machen -
-
was genau geht an dem command nicht ?
-
Ich hab mal zum Thema Alter berechnen auch einen kleinen code gschrieben welche schneller sein sollte als der von Hauk
und was er bestimmt auch ist.Verwendung:
Codeocmd:date(playerid,params[]) { new datum[30],string[40]; if(sscanf(params,"s[30]",datum))return SendClientMessage(playerid,-1,"Benutze /date [text]"); format(string,64,"Du bist %d",GetAge(datum)); SendClientMessage(playerid,-1,string); return 1; }Code:
Code
Alles anzeigenstock GetAge(string[]) { new var0, var1, var2, Date[3], age; sscanf(string, "p<.>iii", var0, var1, var2); if(var0 > 31 || var0 <= 0)return 0; if(var1 > 12 || var1 <= 0)return 0; getdate(Date[0],Date[1],Date[2]); if(var2 > Date[0] || var2 < 1900)return 0; age = Date[0] - var2 - ((Date[1] < var1)? 1 : ((Date[1] == var1 && Date[2] < var0)? 1 : 0)); return age; }Output bei
/date 10.9.2000
12/date 10.12.2000
11 -
Guter Ansatz Prototype..
Werde mich gleich mal dran versuchen^^Denn ich glaub das man nur durch die Distanzberechnung auf einen grünen zweig kommt..
Naja so wirklich kann man das nicht beurteilen was am besten ist
du solltest dir ihrgend ein bezugspunkt wählen
ein beispiel die Realität und das ganze danach berechnen.
Ein gutes Beispiel für die Realität ist Golden Gate Bridge zu nehmen man weiß wie lang diese in der wirklichkeit ist
und dazu hin hat man die Strecke und natürlich auch die Zeit , wenn man das misst.Daher braucht man dazu natürlich die ingame distanz um auch das Maßstab festzulegen.
-
Schwachsinn das ist nicht verboten nur der Code wo dabei raus kommt ist kaum zu gebrauchen mann kann eigentlich nur dne Aufbau
nach vollziehen
das ganze geht mit easy deamxhttp://forum.sa-mp.com/showthread.php?t=349160
das einzigste was dabei passiert ist das die P-Codes entschlüsselt werden.
was sind P-Codes ?
Der Kompiler(Abstrakte Maschine) wandelt eure Script , includes und indirekten Includes um in diese P-Codes
so werden diese Codes in einer Art Sandbox gehalten somit ist das ganze flexibler , kompakter und einfach
zu implementieren.Bsp:
-
Und was willst mir jetzt damit sagen ?
poste ihn doch , schreib uns was daran nicht gehen sollte etc ... dein Problem.
-
learning by doing , wenn du Änfanger bist willst es doch lernen und wenn man den Leuten alles offenliegt wo bleibt dann die moral beziehungsweise
die erweiterung des wissens .
Daher denk nach probiers und , bei schwierigkeiten kann man immer noch helfen. -
eigentlich nur 1 Timer und 1 Variabel welche du runterzählen lässt.
Die variabel sollte global sein es kommt an ob du mehrere Zonen hast dann solltest du eine array benutzten
-
was benötigt wird :
ocmd include
sscanf code oder das plugin.1 parameter
dazu 1 Timer ( SetTimerEx)
1 variabel für den Timer
je nach ermessen als Text ,
GameTextForAll oder TextdrawTipp: Benutze den eigebenen parameter im Timer und lasse ihn dort runter zählen
Info: Nicht vergessen den Timer zu beenden (killen KillTimer);
-
Benutz einfach floatround.
Damit gehts
Du meinst hoffentlich zusätzlich
da man mit floatsqroot
die wurzel zieht -
Du gibst das ganze als integer aus obwohl es eine Float ist dazu solltest du das ganze runden oder das ganze bis zur einen bestimmten dezimale als Float angeben
-
Dir fehlen die entsprechenden plugins
hast du diese aich in der server.cfg eingetragen.