Das dauert nicht lang
--------------------------
Is ne gute idee aber da muss noch ein bisschen mehr eingebaut werden.
Ja, tut es nicht. Doch für sowas ist das ein ganzer Haufen vergeudeter Zeit.
Das dauert nicht lang
--------------------------
Is ne gute idee aber da muss noch ein bisschen mehr eingebaut werden.
Ja, tut es nicht. Doch für sowas ist das ein ganzer Haufen vergeudeter Zeit.
Zeig mal den Code des "Testo-Befehls".
Um was geht es? ôô
Zeitverschwendung. Lass das lieber.
Alles anzeigen
fast .
Man muss
new rSpawn = random(5);
schreiben, weil diese 5 sich nicht genau auf das case bezieht ignt. schon aber 5 heisst das es zwischen 5 verschiedenne Randoms ist und dieses case fängt einfach bei 0 an
Falsch. Ich habe die Var extra an seinen Code angepasst. Er benutzt case 1-4.
new rSpawn = random(4) +1;
Wenn sie keine Kritik wollen, dann sollen sie es einfach unten anmerken.
Vielleicht paar Ports durch andere Programme blockiert?
Schon unter OnVehicleSpawn probiert?
Sicher, dass die Fahrzeuge schon erstellt wurden?
Bei OnPlayerGiveDamage abfragen ob sie im selben Team sind und dann die Nachricht ausgeben.
Zitat von Deine Signatur(Kenntnisse)
• PAWN (enum, PVar, MySQL, Befehle etc. - erweiterte Skriptkenntnisse)
stock SpielerSpeichern(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
if(GetPVarInt(playerid,"logged") == 1)
{
new string[500];
format(string,sizeof(string),"UPDATE `accounts` SET `Level` = %d, `Geld` = %d, `Toetungen` = %d, `Tode` = %d, `Alter` = %d, `Geschlecht` = %d, `Herkunft` = %d, `Health` = %f WHERE `Name` = '%s'",
SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pToetungen],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pAlter],
SpielerInfo[playerid][pGeschlecht],SpielerInfo[playerid][pHerkunft],SpielerInfo[playerid][pHealth],SpielerInfo[playerid][pName]);
mysql_query(string);
}
}
return 1;
}
Probiers das mal.
Wenn du das Problem schon einige Zeit hast, wieso bist du dann nicht auf die Idee gekommen, eigene Querys zu machen?
Indem du bei dem Tankstellen Array weitere Koordinaten einträgst und abfragst.
new Float:Tankstellen[] = {
-2026.8353, // X Coord von deiner ersten Tankstelle
156.7377, // Y Coord von deiner ersten Tankstelle
29.0391, // Z Coord von deiner ersten Tankstelle
0.0000, // X Coord von deiner zweiten Tankstelle
0.0000, // Y Coord von deiner zweiten Tankstelle
0.0000 // Z Coord von deiner zweiten Tankstelle
};
Natürlich durch richtige Koordinaten ersetzen.
€: UncleSub's Möglichkeit geht auch, ist auch übersichtlicher, wenn du dich mit Arrays schon ein bisschen auseinander gesetzt hast
Es ist wohl noch ein bisschen zu kompliziert für dich, auf diese Art mit Timern zu arbeiten.
Mach es mal lieber mit States... ist viel simpler..
OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == 2 || newstate == 3)
{
//Wenn er irgendwo eingestiegen ist
}
return 1;
}
Alles anzeigenWarum sowas verwenden, wenn man eine native Callback hat ? In diesem Callback weisst Du, woher der spieler kam (Zustandsmässig) und wohin er geht (Auch wieder zustandsmässig), also zB:
Zu Fuss -> Als Fahrer ins Auto
Zu Fuss -> Als Beifahrer ins Auto als Beifahrer
Die States sind hier einsehbar: Klick
Und jetzt nenn mir einen Grund, warum man noch Timer verwenden sollte - Warum das Rad neu erfinden
Ja deine Methode funktioniert natürlich auch..
€: deine ist sogar genauer, sofern mit den States so gearbeitet wird, wie ich denke..
@Holly die Waldfee Keine perfekte Lösung
Verwende OnPlayerStateChange: http://wiki.sa-mp.com/wiki/OnPlayerStateChange
Doch.
Lass den Timer 3-4 mal durchlaufen und frag mit IsPlayerInVehicle ab.
Kill den Timer am Ende des letzten Durchlaufs und sobald der Spieler im Vehicle ist.
Benutz nen Timer..
GetVehiclePos, IsPlayerInRangeOfPoint