Beiträge von IPrototypeI
-
-
und was ist mit den spawnpoints?
@ IPrototypeIdie somit auch abklammerst also den spieler von 0 - 9 auf die jeweiligen spawns setzst
-
Ne und zwar..
Ich sage mal es sind 30 LEUTE online..
Aber es gibt nur 10 Spawnpoints (autos)
Wie mache ich dann ins. 30 Spawnpoints dynamisch.. (Setze die Spieler dann in andere VWorlds)hm mit der random auswahl ist das immer ganz blöd sonst würde ich sagen mach eine for schleife geh die spieler durch und ab 10 spielern erhöhst du eine wert um 1 und somit auch die vw und bei 20 auch nochmal um 1 und so weiter.
-
Okay Pickups habe ich!
Aber das mit Autos.. geht das nicht anders?
Und meine wichtigste Frage:
Wenn ich 20 Spieler habe, aber nur 10 Spawnpoints habe.. was mache ich dann?Edit: Noch ein Problem.. Wie setze ich die 3dtextlabels in jede vworld?
Ist doch total resourcenfressend die überall reinzusetzennein es wird ja nicht erstellt nur angezeigt sonst wäre ja schon längst schluss bei einem pickup.
das mit dem spawnpunkten dies versteht ich immer noch nicht was du dabei genau willst?
Willst du wissen wie man ein slot nicht zwei mal belegen kann daher setzt du ein wert auf den platz und schicksten den code per goto nochmal zur random auswahl -
Bei deinem Code passiert das selbeIPrototypeI
Nunja, das ist aber auch nur teilweise gut, denn wenn einer mit N00bbeit z.B. F3 1x Drückt stirbt er auch und das könntest du mit einem Timer nicht bemerken
jedoch gibts trollbeit das hat auch die fakekill funktion und das ist nicht wirklich nooblike , aber sonst hast du recht -
Was für ein BlödsinnDer Callback OnPlayerDeath wird nur dann aufgerufen, wenn ein Spieler ein Leben von 0 hat, also ist GetPlayerHealth(playerid,pHealthFake[playerid]);
if(pHealthFake[playerid]>0)
totaler QuatschProbiere es doch einfach mal so:
public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid == playerid) Kick(playerid); //Das ist ein nicht richtiger Kill, er würde hier auch gekickt werden, wenn er von einer Klippe springt oder sich im Wasser ertränkt...
return 1;
}Kaliber , die abfrage ist nicht wirklich sehr effektive da mann fakekill auch so gesehen von anderen ausführen lassen kann.
Damit ist gemeint ich kann mich 1000 mal von spieler 1 töten lassen.
Daher sollte man die Zeit mit ein berechnen die würde ich hier mit GetTickCount auslesen in eine extra variabel speichern für den spieler und diese dann mit dem zweiten
auf ruf von OnPlayerDeath subtrahieren und den wert mit einem bestimmten wert vergleichen beispiel 1000 oder 500 also 1 sekunde oder 0.5 sekunden. -
Ich mache euch nochmal auf mein Problem aufmerksam^^
Pickups kannst du durch die endung von -1 für alle vws sichtbar machen.
Die Autos musst du für jede vw einzelnt erstellen und diese dort hinzufügen also per
SetVehicleVirtualWorld -
Du rufst das ganze erst auf, wenn der spieler den server verlässt. Bei einem restart ist das ganze so das die spieler nicht disconnecten jedoch gehen die variabeln verloren
du kannst beim gmx command das ganze aufrufen also eine forschleife durch die spieler machen und die account speichern also deine stock-funktion aufrufen. -
Danke für deinen Code.
Funktioniert auch einigermaßen, nur muss ich mir halt überlegen wie ich das umsetzen kann,
dass man nicht bei jedem "Stoß" leben verliert, dass man nicht mehr schneller wird wenn man fällt etc.du könntest das auch auf eine taste verlegen und zum leben setten da kannst acuh eine sehr große lebensanzahl ( Wert bei SetPlayerHealth) nehmen oder wie
ich einfach neu setten jedoch mit einer höheren anzahl.Aber wie du willst der grundcode ist gelegt auch , wenn es nicht sauber ist jetzt weißt ja wenigstens wie es funktioniert.
Zum kleinen Tipp bei GetPlayerVelocity bekommt man die fortbewegungsgeschwindigkeit daher wird diese um das 10 fache erhöht also multipliziert.
-
Wieso setzt du das Leben immer wieder auf 100 ?und du solltest die Deklaration der Variablen noch für ihn angeben
mfg.
das ist ein beispiel zu dem hab ich das ganze gerade mit einem timer von 100 miliskeunden getestet dabei bin ich gegen das nächste haus gebrettert und war tut auch mit trollbeit hab ich nicht lange überlebt .
Naja man wird so gesehen aus der map geschleudert und bekommt ein crash .Wie schon oben angemerkt das ist ein beispiel code die umsetzung ist auch für den arsch gebe ich auch zu aber in weniger als 2 minuten so ein kleinen code zusammen zu basteln. Ich sag nur eigen initiative kann man doch auch wohl erwarten oder findest das nicht so
-
Mir is schon klar dass man es mit SetPlayerVelocity machen könnte.
Aber dazu muss man halt warsch. was berechnen, aus der aktuellen
Laufgeschwindigkeit um das ein bisschen zu erhöhen.
Und in Mathe bin ich nicht so fitich hab dir ein beispiel gepostet am besten merkt man das ganze wenn man danach springt
-
Sowas ist möglich mit SetPlayerVelocity
siehehttp://wiki.sa-mp.com/wiki/SetPlayerVelocity
//edit
ich weiß ist ein wenig schlampig aber es tut was es soll
Code
Alles anzeigenocmd:faster(playerid) { if(playerspeed == false){ morespeed = SetTimerEx("test",1000,true,"i",playerid); playerspeed = true; SendClientMessage(playerid,-1,"Der Speedboost ist an"); }else{ playerspeed = false; SendClientMessage(playerid,-1,"Der Speedboost ist aus"); } return 1; } Function test(playerid) { new Float:Pos[3]; if(playerspeed){ GetPlayerVelocity(playerid,Pos[0],Pos[1],Pos[2]); SetPlayerVelocity(playerid,floatmul(Pos[0],10.0),floatmul(Pos[1],10.0),Pos[2]); SetPlayerHealth(playerid,100); }else { KillTimer(morespeed); } return 1; }
-
SelectTextDraw(playerid, 0xde1818FF);
so nun weiß ich an was es liegt es liegt an ~b~ womit du den Text färbst.
Ich kann dir auch nicht genau sagen warum dies so ist jedoch scheint es die Farbe statisch zu verändern daher.musst du
verändern
zum Beispiel zu ( Der Farbcode ist blau besser gesagt eine Art und weise von blau ^^)
-
Also fürs auswählen hab ich die perfekte Größe gemacht (30 passt perfekt :>)
PlayerTextDrawTextSize(playerid,Selection[2], 382.000000, 30.000000);kannst du vllt dein ganzen code von dem Spielertextdraw hier posten , da ich auch nicht mehr weiter weiß , weil sonst würde ich morgen
ein wenig damit rum probieren.OnPlayerClickPlayerTextDraw wird bei dir schon aufgerufen ?
-
TextDrawSetSelectable
hm zeig mal deine größe bei PlayerTextDrawTextSize
//edit da , wenn dort ihrgend was 0 beträgt wird der hover auch nicht angezeigt , also es definiert zu gleich den bereich welcher anklickbar ist -
SelectTextDraw(playerid, 0xde1818FF);
hm komisch vllt liegt es am Farbcode
probiers mal so
SelectTextDraw(playerid, 0xF97804FF);
jedoch stellt sich noch die frage ob du
TextDrawSetSelectable
auch verwendest beziehungsweise ob du es nicht vergessen hast -
Mein Problem war so, nach rechts ging es ja nach der richtigen reihenfolge, aber wenn auf links klickte kahmen andere Skins als die die eigentlich kommen sollten, hab es jetzt aber geschafft nach einigen Stundenok
du stellst schon eine Farbe ein bei SelectTextDraw(playerid, Farbe);
_________________Wenn er nicht im Auto hockt dann kannst ihn nochmal in das auto rein stecken also erst das fahrzeug porten danach
PutPlayerInVehicle(playerid, GetPlayerVehicleID(playerid), 0); -
Also muss das hier rein?
if(dialogid==DIALOG_LVAIRPORT)
{
if(response==1)
{
SetPlayerPos(playerid,1694.0320,1457.4911,10.7637);
SendClientMessage(playerid,0xFFFF00FF,"Du wurdest Teleportiert");
}
if(response==0)
{
SendClientMessage(playerid,BLAU,"Ok dann halt nicht...");
}
}edit: Wenn das da rein soll kreig ich 2 errors. error 017: undefined symbol "X"
Codeif(dialogid==DIALOG_LVAIRPORT){ if(response){ SetPlayerPos(playerid,1694.0320,1457.4911,10.7637); SendClientMessage(playerid,0xFFFF00FF,"Du wurdest Teleportiert"); } else return SendClientMessage(playerid,BLAU,"Ok dann halt nicht..."); }
denk mal nach was ist X und was ist Y und Z das sind koordinatenachsen
da ist es doch klar das du dort deine position eintragen soltest -
Wenn du die drogen abfragen willst macht es kein sinn ihrgend welche variabeln abzufragen.
-
Habe mal wieder eine Frage
Wie kann ich das machen das man bei dem Befehl unten mit einem Fahrezug sich porten kann?
if (strcmp ("/gotozoll", cmdtext, true)==0)
{
if(isPlayerAnAdmin(playerid,1))
{
ShowPlayerDialog(playerid,DIALOG_ZOLL,DIALOG_STYLE_MSGBOX,"ZOLL","Möchten sie wirklich zum Zoll?","JA","Nein");
return 1;
}
SendClientMessage(playerid,BLAU,"Du bist kein Admin.");
return 1;
}erstmal so passt das ganze eher
Codeif (strcmp ("/gotozoll", cmdtext, true)==0){ if(isPlayerAnAdmin(playerid,1))ShowPlayerDialog(playerid,DIALOG_ZOLL,DIALOG_STYLE_MSGBOX,"ZOLL","Möchten sie wirklich zum Zoll?","JA","Nein"); else return SendClientMessage(playerid,BLAU,"Du bist kein Admin."); return 1; }
ganz einfach beim dialog wenn er ja drück also response == 1 ist und der spieler ist in einem fahrzeug portest du das fahrzeug .