public OnPlayerSpawn(playerid)
{
new fID=SpielerInfo[playerid][pFraktion];
SetPlayerPos(playerid, fInfo[fID][f_x], fInfo[fID][f_y], fInfo[fID][f_z]);
return 1;
}
Beiträge von Jeffry
-
-
Nein, bei OnPlayerSpawn als Beispiel:
new frak = Spieler[playerid][pFraktion];
SetPlayerVirtualWorld(playerid,FSpawnInfo[frak][fspawnworld]);Dann ist es übersichtlicher.
-
Da fehlt die Anzahl.
#define MAX_FRAKS 12Oder du schreibst es so:
new Fraktionen[][Frakinfo] = {Beides sollte gehen.
-
Eddy:
public OnPlayerSpawn(playerid)
{
SetSpawnInfo(playerid,0,185,1579.6324,-1327.7070,16.4844,319.4559,0,0,0,0,0,0);
if(IsPlayerInFrakt(playerid,1))
{
SetPlayerPos(playerid,FSpawnInfo[Spieler[playerid][pFraktion]][fspawnx],FSpawnInfo[Spieler[playerid][pFraktion]][fspawny],FSpawnInfo[Spieler[playerid][pFraktion]][fspawnz]);
SetPlayerInterior(playerid,FSpawnInfo[Spieler[playerid][pFraktion]][fspawnint]);
SetPlayerVirtualWorld(playerid,FSpawnInfo[Spieler[playerid][pFraktion]][fspawnworld]);
return 1;
}
return 1;
}Einfacher zu sehen wäre es gewesen, wenn du hier mit einer Hilfsvariable für die Fraktions-ID gearbeitet hättest.
-
Kann es sein, dass das SetPlayerSkin bei OnPlayerSpawn nicht aufgerufen wird? Setze mal einen Print vor das SetPlayerSkin und schau ob der Print im Log steht, wenn du spawnst.
EDIT:
@Aviero: Alles klar, super!
-
Nein, ohne das Float.
fInfo[SpielerInfo[playerid][pFraktion]][f_x]
-
Wie hast du es denn gemacht?
Außerdem darfst du nicht playerid in fInfo schreiben, sondern da muss die Fraktions-ID des Spielers rein.
-
Mach die vier
Float:
aus den Klammern raus.Die hast du ja schon bei der Deklaration.
-
Ok, super!
Mache beim Login:
sInfo[playerid][pSkin] = cache_get_field_content_int(0,"skins",dbhandle);
SetPlayerSkin(playerid,sInfo[playerid][pSkin]);Und bei OnPlayerSpawn ganz unten:
SetPlayerSkin(playerid,sInfo[playerid][pSkin]);Natürlich pSkin noch im enum deklarieren.
-
-
Einfach die GetRangName Funktion nehmen und entsprechend mit den Namen befüllen (roter Text). Probiere es mal aus und wenn du es nicht hinbekommst, poste den Code wie du ihn gemacht hast.
-
Hast du dir mal einen Befehl für savePlayer gemacht? Wenn nein, mach das mal und poste dann den MySQL Log, der kommt, wenn du den Befehl eingibst. Setze dir zuvor per anderen Befehl den Skin auf 100.
-
Siehe hier:
Fraktionserstellung MySQL
Ich denke das Beispiel sollte passen. -
Was meinst du mit jeder Fraktion ihre eigenen Fraktion Namen? Der Fraktionsname ist doch schon da.

-
@Rocky: Das wird dir einen Error empty statement geben, wegen dem Semikolon. Außerdem muss es ein Spieler Array sein.;)
if(Duty[playerid] == 1)
-
Yup. Das will er so haben, das habe ich nur von ihm übernommen.

mysql_fetch_field_row(data,"Armor"); -
stock LoadWeapons(playerid)
{
new query[256];
format(query,sizeof(query),"SELECT * FROM Waffen WHERE Name='%s'",PlayerName[playerid]);
mysql_query(query);
mysql_store_result();
mysql_retrieve_row();new wstring[10],data[64];
new waffe, wammo;if(mysql_num_rows()==0)
{
mysql_free_result();
format(query,sizeof(query),"INSERT INTO Waffen (Name) VALUES ('%s')",PlayerName[playerid]);
mysql_query(query);
return 1;
}
for(new i=1; i<=11; i++)
{
format(wstring,sizeof(wstring),"Waffe%i",i);
mysql_fetch_field_row(data,wstring);
waffe=strval(data);
format(wstring,sizeof(wstring),"Ammo%i",i);
mysql_fetch_field_row(data,wstring);
wammo=strval(data);
GivePlayerWeapon(playerid,waffe,wammo);
format(str,144,"UPDATE Waffen SET Ammo%i='0' WHERE Name='%s'",i,PlayerName[playerid]);
mysql_query(str);
}
mysql_fetch_field_row(data,"Armor");
mysql_free_result();
wammo=strval(data);
SetPlayerArmour(playerid,wammo);
SetPVarInt(playerid,"waffengeladen",1);
return 1;
}mysql_retrieve_row(); hat gefehlt sehe ich grade. Das braucht man ja beim R5 noch. Teste es mal so.
-
Du warst zu schnell mit kopieren, hatte noch was vergessen und hatte es noch editiert.
Die Zeile muss so sein:
if(hInfo[id][h_text] != Text3D:-1) -
Achso, du meinst das so. Ok, dann musst du noch das hier ändern zu:
stock UpdateHaus(id)
{
new str[128];
if(hInfo[id][h_pickup] != -1)
{
DestroyPickup(hInfo[id][h_pickup]);
}
if(hInfo[id][h_text] != Text3D:-1)
{
Delete3DTextLabel(hInfo[id][h_text]);
}
if(!strlen(hInfo[id][hBesitzer]))
{
hInfo[id][h_pickup] = CreatePickup(1273, 1, hInfo[id][hX], hInfo[id][hY], hInfo[id][hZ], -1);
format(str,sizeof(str), "HausID: %i\nZu Verkaufen\nPreis: %i$\n/hauskaufen", hInfo[id][hID], hInfo[id][Preis]);
hInfo[id][h_text] = Text3D:Create3DTextLabel(str, WEISS, hInfo[id][hX], hInfo[id][hY], hInfo[id][hZ], 10, 0, 1);
} else {
hInfo[id][h_pickup] = CreatePickup(1272,1,hInfo[id][hX],hInfo[id][hY],hInfo[id][hZ], -1);
format(str,sizeof(str), "HausID: %i\nBesitzer: %s\n'F' zum hinein gehen.", hInfo[id][hID], hInfo[id][hBesitzer]);
hInfo[id][h_text] = Text3D:Create3DTextLabel(str, GELB, hInfo[id][hX], hInfo[id][hY], hInfo[id][hZ], 10, 0, 1);
}
return 1;
}Und natürlich:
for(new i=0; i<sizeof(hInfo); i++)
{
hInfo[i][h_text] = Text3D:-1;
hInfo[i][h_pickup] = -1;
} -
Schreibe das bei OnGameModeInit hin:
for(new i=0; i<sizeof(hInfo); i++)
{
hInfo[i][h_text] = Text3D:-1;
hInfo[i][h_pickup] = -1;
}