jaja, sucker
grp nachmachen?
jaja, sucker
grp nachmachen?
Hallo!
Gibt es eine Möglichkeit abzufragen, ob ein Spieler auf ein Objekt schiesst? Ich hab bereits PlayerAimOnObject, aber das ist nicht so ganz das wahre.. das hat sicher schon jemand geschafft?
MFG
edit: hier der aimcode, falls den jemand braucht..
stock PlayerAimToPoint(playerid, Float:x, Float:y, Float:z, Float:radius)
{
new Float:cx,Float:cy,Float:cz,Float:fx,Float:fy,Float:fz;
GetPlayerCameraPos(playerid, cx, cy, cz);
GetPlayerCameraFrontVector(playerid, fx, fy, fz);
return (radius >= GetDistanceToPoint(cx, cy, cz, x, y, z, fx, fy, fz));
}
Ja mach ich, gleich am Anfang..
ja aber soweit kommt der ja theoretisch net mal, wenn er nicht einmal den letzten Datensatz ausliest?!
edit: auch wenn ich mysql_free_result rausnehme gehts net gibts dafür keine lösung, ausser das ich immer nur 14 tankstellen haben kann?!
Hallo leute!
Ich hab ein kleines Problem. Ich hab das neuste mysqlplugin von strickenkid.
Nun hab ich in einer mysql tabelle 15 datensätze drin, wobei der 15. datensatz nicht ausgelesen wird und dann der server crasht (bzw. nicht lädt, gamemode: unknown).
hier der code
stock LoadTankstellen()
{
MySQLCheck();
printf(" ");
printf("____________Tankstellen Anfang____________");
printf(" ");
new idx;new data[256];
mysql_query("SELECT * FROM gasstation");
mysql_store_result();
while(mysql_fetch_row_data())
{
TankstellenInfo[idx][tID] = idx;
mysql_fetch_field("tBenzin",data);TankstellenInfo[idx][tBenzin] = strval(data);
mysql_fetch_field("tPosX",data);TankstellenInfo[idx][tPosX] = floatstr(data);
mysql_fetch_field("tPosY",data);TankstellenInfo[idx][tPosY] = floatstr(data);
mysql_fetch_field("tPosZ",data);TankstellenInfo[idx][tPosZ] = floatstr(data);
printf("ID: %d, Benzin: %d, PosX: %f, PosY: %f, PosZ: %f",TankstellenInfo[idx][tID],TankstellenInfo[idx][tBenzin],TankstellenInfo[idx][tPosX],TankstellenInfo[idx][tPosY],TankstellenInfo[idx][tPosZ]);
idx++;
}
mysql_free_result();
printf(" ");
printf("____________Tankstellen Ende____________");
printf(" ");
return 1;
}
Allerdings ist es das selbe prinzip wie bei jeder anderen tabelle, die ich aus dieser datenbank lese.
Jemand ne Ahnung?
MFG selEcT
hallo leute
Ich hab die standardbefehle von skydive und fourdive vom gf.
Allerdings wenn ich das mache, flieg ich im unsichtbaren und pralle dann auf dem boden auf --> tot.
Wie ist der richtige befehl? Oder an was liegt das? kann es sein das es zu hoch ist (1350)?
MFG
Hallo zusammen!
Bei mir im script gibts nen Fehler:
Function header differs from prototype
Funktion:
stock split(const strsrc[], strdest[][], delimiter)
{
new i, li;
new aNum;
new len;
while(i <= strlen(strsrc)){
if(strsrc[i]==delimiter || i==strlen(strsrc)){
len = strmid(strdest[aNum], strsrc, li, i, 128);
strdest[aNum][len] = 0;
li = i+1;
aNum++;
}
i++;
}
return 1;
}
warum kommt das bei einem stock?!
MFG
edit: erledigt, split geändert (--> spliter)
hab den fehler im script gefunden, hab split rausgenommen, allerdings wenn ichs wieder rein tu kommt ein error:
Function header differs from prototype
funktion:
stock split(const strsrc[], strdest[][], delimiter)
{
new i, li;
new aNum;
new len;
while(i <= strlen(strsrc)){
if(strsrc[i]==delimiter || i==strlen(strsrc)){
len = strmid(strdest[aNum], strsrc, li, i, 128);
strdest[aNum][len] = 0;
li = i+1;
aNum++;
}
i++;
}
return 1;
}
warum kommt das bei einem stock?!
Hallo Leute!
Ich hab ein kleines Problem.
Wenn ich die samp-server.exe starte, stürzt sie gleich wieder ab. In der server-log steht alles drin, bis das filterscript geladen wurde (also nachdem das filterscript geladen wurde (bfx_oStream)).
Der server läuft unter Windows 7 Ultimate 64Bit Version. Speicherdateien gibt es nicht mehr --> mysql. Ich hab auch das plugin dafür, das wird auch normal geladen. Die neusten Includes hab ich auch.
Wo liegt das Problem bzw. was muss ich beachten bei der Umstellung?
MFG selEcT
ich hätts jetzt mit SetTimerEx gemacht. aber so gehts auch
also eigentlich die erste lösung die du geschrieben hast? Ja, da bleibt nichts anderes übrig (sind 20 Objekte --> #define MAX_OBJECTS 20).
Okay, 2 Sachen. Zuerst: Mit Format erstellst du "objectstring" aber im Dialog rufst du nur "string" auf.
ups, war wohl ein kleiner copy&paste fehler
Alles anzeigenDeine Forschleife ist an sich ein richtiger Ansatz, aber du musst sie ändern. Der fertige String muss so aussehen:
objekt1\nobjekt2\nojekt3....
Ungetestet würde ich die Forschleife dann so machen: (Abhängig von der Anzahl der Objekte kann es sein, dass eine Arraygröße von 256 nicht reicht!)
for(new i=0;i<sizeof(Object);i++)
{
if(Object[i][blEnabled] == 1)
{
format(objectstring,sizeof(objectstring),"%s\nObjekt %d",objectstring,i);
}
}
ach, blöder denkfehler, ist ja klar das ich die anderen objekte auch reinnehmen muss.
Alles anzeigenNoch so als kleiner Tipp:
if(dialogid == ObjectDialog)
{
if(response == 0) return 1;
if(response == 1)
{
kann einfach zu
if(dialogid== ObjectDialog)
{
if(response)
{
//CODE
}
}
werden, da bei einer anderen Antwort (der 2. Button) der Dialog automatisch ohne Effekt geschlossen wird.
ja, stimmt. dann hab ich weniger code. aber bei meinen dialogen kommt bei response == 0 meistens noch was
Die Frage ist, wie du damit jetzt weiterarbeitest. Da deine Objekte ja scheinbar sich in der Laufzeit variabel ändern, wird das mit dem case für jedes Objekt schwer.
Ich weiß nicht, was du mit den Objekten jetzt weiter vor hast. Wenn du bei jedem etwas anderes machen willst, aber immer andere in der Liste stehen könnten, solltest du am besten leere Listeneinträge erstellen, damit die Struktur im Code immer gleich bleibt - 3. Zeile in der Liste ist immer das 3. Objekt, egal ob es [blenabled] ist oder nicht.
Hab ich mir auch schon überlegt. Dann kommt einfach, das dieses Objekt nicht verfügbar ist oder so. Wäre eine Lösung.
Wenn du aber bei allen den selben Vorgang machen würdest könntest du die listitem-Struktur folgendermaßen versuchen (wie immer ungetestet):
switch (listitem)
case 0..sizeof(Objects): //Mache irgendwas mit dem Objekt
Bei jedem Objekt soll es mir einen Checkpoint anzeigen mit den positionen des objektes. würde dies in dem falle gehen? oder eher nicht?
Spontan fällt mir aber keine Anwendungsmöglichkeit ein, da in der Variable ja nicht die Objekte an sich überliefert werden. Versuch dein Vorhaben etwas näher zu erläutern.
ja, dann sind die objekte in einem dialog, die man dann anwählen kann und danach wird einem einen Checkpoint angezeigt, wo das objekt ist.
Danke schon mal für die antwort
MFG selEcT
Hallo leute!
Ich zerbrich mir grad den Kopf an einem "kleinen" Dialogproblem.
Ich hab irgendwo einen Befehl (/showobjects). Dort mach ich eine for-schleife:
//ganz oben
new objectstring[256];
//showobjects
for(new i=0;i<sizeof(Object);i++)
{
if(Object[i][blEnabled] == 1)
{
format(objectstring,sizeof(objectstring),"Objekt %d\n",i);
}
}
und setz dann das Ergebnis in einen Dialog:
ShowPlayerDialog(playerid,ObjectDialog,DIALOG_STYLE_LIST,"Waehle das Objekt aus, das du sehen moechtest:",string,"Sehen","Abbrechen");
Wie kann ich jetzt die einzelnen "listitems" dort auslesen? Also
if(dialogid == ObjectDialog)
{
if(response == 0) return 1;
if(response == 1)
{
if(listitem == 0)
{
//erstes Objekt, das in der Variable objectstring ist
}
if(listitem == 1)
{
//zweites Objekt, das in der Variable objectstring ist
}
//etc
}
}
Ich hoffe, jemand kann mir helfen.
MFG
du kannst auch windows reparieren mit einer windows cd. Der stellt dann die systemdateien wieder her.
und wie siehts beim anfahren aus? fährt er da mit 80 km/h an? das wäre ja ziemlich unrealistisch nich?
edit: habs getestet, ist nicht gerade super.. wenn man nach 5 sekunden fahren schon auf 150 mit dem admiral ist
habs nun so:
kmh = floatround(floatsqroot(floatpower(vex, 2) + floatpower(vey, 2) + floatpower(vez, 2)) * 200);
sieht einigermassen gut aus..
ich hab schon viel nach "Tacho" gesucht, aber nirgends hat es irgendwie ne wirklich ideale km/h anzeige.. wie wird die geschwindigkeit berechnet? v=s/t soviel ich weiss..
ich habs nun mal mit dem probiert:
GetVehicleVelocity(vehicleid,vex,vey,vez);
kmh = floatround(floatsqroot(vex*vex + vey*vey + vez*vez) * 180);
oben raus ist es vielleicht ein wenig genau, allerdings wenn ich anfahre hab ich schon 40 km/h.. auch wenn ich * 100 mache ist es unten zwar ein wenig realistischer, aber der Infernus kommt auf gerade mal 100 km/h.. und der shamal auf ledigliche 270 km/h.. gibts noch ne andere möglichkeit?
oder das:
GetVehicleVelocity(vehicleid,vex,vey,vez);
kmh = floatround(floatsqroot(floatabs(floatpower(vex + vey + vez, 2))) * 100 * 1.610921812123);
aber das ist auch nicht das wahre.. hat dann niemand einen schön funktionierenden tacho? ich verzweifel bald..
Schönen abend zusammen
ich such ne korrekt funktionierende Geschwindigkeitsanzeige, bzw. die formel da mit floatsqr und so, damit sie realistisch ist.. denn bei dieser die ich hab, fahr ich mit dem admiral aufm strip 340 km/h xD
MFG
Alles anzeigen
GetPlayerPos(playerid,x,y,z);
GetPlayerPos(giveplayerid,x,y,z);
SetPlayerPos(playerid,x,y,z+1);
SetPlayerPos(giveplayerid,x,y,z+1);
Also in meinen augen müsste es so gehen
hmm das denke ich nicht sieht es so nicht besser aus?
GetPlayerPos(playerid, PX, PY, PZ);
GetPlayerPos(giveplayerid, GX, GY, GZ);
SetPlayerPos(playerid, PX, PY, PZ+1);
SetPlayerPos(giveplayerid, GX, GY, GZ+1);
ich werds zuhause mal überprüfen.
es wär echt nice, wenn feuer synchron gemacht wird
Geht nicht!! Beide Spieler stehen dann auf dem Fahrzeug am gleichen ort.