if(strlen(params));
; muss weg
if(strlen(params))
edit:
i = strval(params)
da muss spieler hin wenn mich nicht alles täuscht
Spieler = strval(params)
if(strlen(params));
; muss weg
if(strlen(params))
edit:
i = strval(params)
da muss spieler hin wenn mich nicht alles täuscht
Spieler = strval(params)
INI_ReadString(dest[], const key[], maxlength = sizeof(dest))
edit:
INI_ReadString(Autos[playerid][i][Nummernschild],"Nummernschild",20));
SetVehicleNumberPlate(Spielercar[playerid][i],Autos[playerid][i][Nummernschild]);// 1084
SetVehicleNumberPlate(Spielercar[playerid][autoid],Autos[playerid][i][Nummernschild]);
habs mir eben nochmal angeschaut das war ein scheiß was ich geschrieben habe
forward TutorialTimer();
public TutorialTimer()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(Tutorial[i]==1)
{
ShowPlayerDialog(i,DIALOG_TUTORIAL1,DIALOG_STYLE_MSGBOX,"Tutorial - Frage 1","Text bzw. Frage","kick","weiter");
}
if(Tutorial[i]==2)
{
ShowPlayerDialog(i,DIALOG_TUTORIAL2,DIALOG_STYLE_MSGBOX,"Tutorial - Frage 2","Text bzw. Frage","weiter","kick");
}
if(Tutorial[i]==3)
{
ShowPlayerDialog(i,DIALOG_TUTORIAL3,DIALOG_STYLE_MSGBOX,"Tutorial - Frage 2","Text bzw. Frage","weiter","kick");
}
}
return 1;
}
so ist es richtig
allso die playerid ist nicht definiert
allso
forward TutorialTimer(playerid);
public TutorialTimer(playerid);
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
hier dein zeug rein
}
}
new kills[MAX_PLAYERS]
kills[killerid]++;
kills[playerid] = 0;
new geld = 1000 * kills;
GivePlayerMoney(killerid,geld);
hier 1 und 2, müsste gehen
allso wenn du eine pflanze hinsetzen willst dan musst du das mit createobjekt machen weil es glaub ich kein pickup gibt das wie eine pflanze aussieht
dan solltest du das so machen
enum Pflanzen
{
PflanzeObjekt,
Pflanze3DText,
bool:gepflanzt
}
new PflanzenInfo[MAX_PLAYERS][Pflanzen];
new PflanzenPos[MAX_PLAYERS][3];
/drogepflanzen
if(!PflanzenInfo[playerid][gepflanzt])
{
GetPlayerPos(playerid, PflanzenPos[playerid][0],PflanzenPos[playerid][1],PflanzenPos[playerid][2]);
PflanzenInfo[playerid][PflanzeObjekt] = CreateObjekt(...PflanzenPos[playerid][0],PflanzenPos[playerid][1],PflanzenPos[playerid][2]..AddAutoGate.
PflanzenInfo[playerid][Pflanze3DText] = = Create3DTextLabel(...PflanzenPos[playerid][0],PflanzenPos[playerid][1],PflanzenPos[playerid][2]..
PflanzenInfo[playerid][gepflanzt] = true;
SendClientMessage(playerid,gelb,"blabla");
}
else SendClientMessage(playerid,rot,"Du hast schon eine Pflanze gepflanzt");
/ernten
if(PflanzenInfo[playerid][gepflanzt])
{
if(IsPlayerInRangeOfPoint(playerid, 3.0, PflanzenPos[playerid][0],PflanzenPos[playerid][1],PflanzenPos[playerid][2])
{
DestroyObject(PflanzenInfo[playerid][PflanzeObjekt]);
Delete3DTextLabel(PflanzenInfo[playerid][Pflanze3DText]);
PflanzenInfo[playerid][gepflanzt] = false;
SendClientMessage(playerid,gelb,"blabla");
}
else SendClientMessage(playerid,rot,"du bist nicht bei deiner ...");
}
else SendClientMessage(playerid,rot,"du hast keine ...");
ich hab es hier mal mit 3dtext gemacht, weil du da kein timer brauchst der überprüft ob du im objekt stehst damit der den gamtext anzeigt
du müsstest dan einfach noch ein timer bei drogenpflanzen einbauen, damit man sie nicht gleich ernten kann
ich denke den rest schafst du
#define MAX_PFLANZEN 50
new PflanzenID[MAX_PFLANZEN];
for(new i;i<MAX_PFLANZEN;i++)
if(!PflanzenID[i])
PflanzenID[i] = CreatePickup(...
edit:
so wärs vielleicht besser
new PflanzenID[MAX_PLAYERS];
beim pflanzen
if(!PflanzenID[playerid])
PflanzenID[playerid] = CreatePickup(...
ganz oben
new bool:indm[MAX_PLAYERS];
im cmd
indm[playerid] = true;
bei onplayerspawn
if(indm[playerid]) SetPlayerPos(playerid,1039.5709,2662.4392,10.8129);
dan brauchst du noch ein cmd für ende, da muss rein
indm[playerid] = false;
bei onplayerdisco
indm[playerid] = false;
bei setvehilce health fehlt die vehicleid
alth(vehilceid,20...
du solltest mal überprüfen ob es wirklich 0 ist
deswegen das einfach mal einbauen starten und schauen was raus kommt
printf("haus_besitzer = %d", HausInfo[hausid][haus_besitzer]);
printf("haus_besitzer = %d", HausInfo[hausid][haus_besitzer]);
if(HausInfo[hausid][haus_besitzer] == 0)
{
new string1[128];
format(string1,sizeof(string1), "Dieses Haus\nist zu verkaufen\nPreis: %d$", HausInfo[hausid][haus_preis]);
Create3DTextLabel(string1,COLOR_BLUE,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],45,0,0);
}
else if(HausInfo[hausid][haus_besitzer] != 0)
{
new string2[128];
format(string2,sizeof(string2), "{FFFFFF}Dieses Haus\ngehört{0000ff} %s", HausInfo[hausid][haus_besitzer]);
Create3DTextLabel(string2,COLOR_BLUE,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],45,0,0);
}
danke leute xD
Zitatihr wisst schon das der Thread aus 2009 stammt?
macht doch nichts sie haben es halt erst jetzt entdeckt
danke Maddin
hab auch gerade die neue version probiert
bei mir geht das auch nicht richtig
irgendwie erhält man immer die falsche playerid weil jetzt bei jedem command kommt "Fehler: Kein aktiver Spieler!"
jeder command davon ist mit sscanf
StopAudioStreamForPlayer(playerid);
format(Spielerdatei,sizeof(Spielerdatei),"/Spieler/%s.txt");
fällt dir hier was auf ?
da fehlt ,name
allso
format(Spielerdatei,sizeof(Spielerdatei),"/Spieler/%s.txt",name);
du hast es nur bei register richtig bei den anderen fehlt es
das ist ja scheiße
SetTimerEx("test",500,true,"i",playerid);
das bei ongamemodeinit
da bekommst du den error undefined symbol "playerid"
ZitatSetTimerEx("test",500,true,"i",playerid);
damit wird bei ongamemodeinit ein error kommen
public test(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
if(IsPlayerConnected(i))
SendClientMessage(playerid,0xFF0000FF,"test");
return 1;
}
stimmt, ihr müsst euch aber auch mal ein bisschen anstrengen sonst lernt ihr ja nichts
ihr könnt das ja bei
else desktoptime ++;
einbauen
else
{
desktoptime ++;
format..."... ist seit %d min afk", desktoptime...
Create3DTextLabel...
}