http://wiki.sa-mp.com/wiki/AddStaticVehicleEx
Lese dir das durch, somit funktioniert deine Lösung nicht mehr. Einfach CreateVehicle nutzen.
Beiträge von Klemmlampe
-
-
Da ist wohl die verschachtelte Abfrage schuld. Versuche es erstmal so, aber man kann es noch um einiges kürzen.
if(strcmp(cmdtext, "/enter", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMember] == 6 || PlayerInfo[playerid][pLeader] == 6)
{
if PlayerToPoint(3.0,playerid,2597.7322,1900.3004,11.0312)
{
SetPlayerPos(playerid,140.0937,1368.6858,1083.8634);
SetPlayerInterior(playerid,5);
SetPlayerVirtualWorld(playerid, 2);
}
else if(PlayerInfo[playerid][pMember] == 5 || PlayerInfo[playerid][pLeader] == 5)
{
if PlayerToPoint(5,playerid,691.2778,-1275.9631,13.5605)
{
SetPlayerPos(playerid,140.0937,1368.6858,1083.8634);
SetPlayerInterior(playerid,5);
SetPlayerVirtualWorld(playerid, 1);
SendClientMessage(playerid,COLOR_1GREEN,"*** Welcome to La Costa Nostra home kid ,enjoy !");
}
}
}
}
return 1;
} -
Das nächte mal bitte richtig einrücken, dann ist der Fehler auch leichter erkennbar.
if(strcmp(cmdtext, "/enter", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMember] == 6 || PlayerInfo[playerid][pLeader] == 6)
{
if PlayerToPoint(3.0,playerid,2597.7322,1900.3004,11.0312)
{
SetPlayerPos(playerid,140.0937,1368.6858,1083.8634);
SetPlayerInterior(playerid,5);
SetPlayerVirtualWorld(playerid, 2);
}
else if(PlayerInfo[playerid][pMember] == 5 || PlayerInfo[playerid][pLeader] == 5)
{
else if PlayerToPoint(5,playerid,691.2778,-1275.9631,13.5605)
{
SetPlayerPos(playerid,140.0937,1368.6858,1083.8634);
SetPlayerInterior(playerid,5);
SetPlayerVirtualWorld(playerid, 1);
SendClientMessage(playerid,COLOR_1GREEN,"*** Welcome to La Costa Nostra home kid ,enjoy !");
}
}
}
}
return 1;
}Die Abfrage ist sehr fragwürdig gestaltet, aber ich lasse es dir so.
-
Nein, er braucht die neue Serverversion, nicht nur die Includes.
//E:
Mirco2011
Es reicht, wenn du die 3 .exe-Dateien und die Server.cfg austauschst, bzw. bei der alten Server.cfg die folgende Zeile hinzufügst: -
Gut, nun sollte dir auffallen: Die Zahl (Feldanzahl des Arrays) in den eckigen Klammern ([]) ist kleiner als die Anzahl der Werte (bei dir Fahrzeuge) die ihr zugewiesen werden. Da hilft eine einfache Lösung: Die Zahl hochsetzen.
Es geht von 0-17, das sind 18 Felder, jetzt solltest du wissen, wass zu tun ist. -
Du hast dir meinen Link nicht angeschaut, dann brauchst du aber auch keine Hilfe erwarten.
Aber zu Variable: Suche in deinem Script nach new FastFiveVehs und poste diese Zeile. -
Wie hast du die Variable FastFiveVehs definiert? Und schau dir nochmal AddStaticVehicleEx an, bei dir fehlt ein Parameter, vermutlich die Respawnzeit.
-
Stichwort: PutPlayerInVehicle
-
Wo liegt denn dann noch das Problem?
Ich erkläre dennoch die Grundidee: Im Callback OnPlayerDeath gibt es 3 Parameter, 2 davon sind für dich relevant: killerid und playerid. Wenn der Spieler (playerid) stirbt, zählst du bei seinen Toden eins hinzu (+1/++), bei killerid bei den Morden, wie du die Ratio berechnest habe ich oben schon erwähnt. -
Meinst du SendDeathMessage?
Die Killrate kannst du berechnen, indem du die Anzhal der Tötungen (getöteten Spieler) durch die der Tode teilst. -
Wie soll das denn gehen? Wenn müsstest du den Variablen (von, ...) auch den Wert zuweisen, was aber unnötig ist, da [b]dini_GetString[b] (nicht dini_Get = Integer) direkt den Wert returnt.
format(string,sizeof(string),"** Wilkommen %s du wurdest von:[%s] gebannt, mit dem Grund:[%s]\nDenk einmal über dein Verhalten nach und schreib\ndann etwas ins Forum in die Kategorie: Gebannt/Gekickt/Verwarnt.\nmfg das Adminteam",plname,dini_GetString(save,"Gebannt_Von"),dini_GetString(save,"Grund")); -
Editregel ist Editregel, keine Ausnahmen, auch nicht bei einem Buchstaben.
-
Wenn ich das so richtig verstehe:
Bei Zahlen
if(strval(inputtext) == /*Zahl*/)
Und bei Strings
if(!strcmp(inputtext, /*String*/)) -
Du hattest, wie oben bereits beschrieben, AutoInfo[vID][vPos][4] zu viel, da die Position 0-2 und Facingangle 3 ist (4 Felder). Bei dir wären es aber 5 gewesen, somit ein Parameter zu viel.
-
AddStaticVehicleEx(AutoInfo[vID][vModel],AutoInfo[vID][vPos][0],AutoInfo[vID][vPos][1],AutoInfo[vID][vPos][2],AutoInfo[vID][vPos][3],AutoInfo[vID][vFarbe1],AutoInfo[vID][vFarbe2],60000);
So ausprobiert? Spllte gehen. -
Ich würde mal sagen, dass AutoInfo[vID][vPos][4] zu viel ist, da Pos 0-4 schon die Position + Facingangle sind.
-
Zitat
das dini das in %s.ini schreibt und bei login wieder lädt ?
Aber jetzt ehrlich: Du hast einen Ansatz, versuche es und wenn es Probleme gibt melde dich, dann wird dir auch wieder geholfen.
// OnPlayerSpawn
SetPlayerPos(/*Werte*/);
// Andere Abfragen, wenn vorhanden -
Falsch ist an meinem Ansatz garnichts. Man muss dann noch eine Abfrage einbauen, aber das sollte eigentlich klar sein, dachte ich.
-
Du musst die Position setzen, nachdem der Spieler gespawnt ist, z.B. OnPlayerSpawn.
-
Von mir auch alles Gute, genieße deinen Tag!