1.) Das ist keine kleine Scripting Frage, erstelle für sowas bitte einen Thread.
2.) Unter welchem Callback steht der erste Quelltext?
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
-
Hallo
Ich werd einfach nicht schlau drausDesktop\Script\gamemodes\Ultimate.pwn(209) : error 010: invalid function or declaration
Desktop\Script\gamemodes\Ultimate.pwn(211) : error 010: invalid function or declaration
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/munition", cmdtext, true, 10) ==0)
{
if(IstSpielerInFraktion(playerid, 1))
GivePlayerWeapon(playerid,24,20);
SendClientMessage(playerid,0xFFDC00FF,"Du hast deine Dienstwaffe nachgeladen!");
return 1;
}
return 0;
}
if (strcmp("/dienst", cmdtext, true, 10) == 0)
{
if(IstSpielerInFraktion(playerid, 1))
GivePlayerWeapon(playerid,24,0);
SendClientMessage(playerid,0xFFDC00FF,"Du hast deine Dienstwaffe aus dem Schrank genommen!"); -
Passe etwas besser mit der Einrückung und deine Klammern auf.
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp("/munition", cmdtext, true))
{
if(IstSpielerInFraktion(playerid, 1))
{
GivePlayerWeapon(playerid,24,20);
SendClientMessage(playerid,0xFFDC00FF,"Du hast deine Dienstwaffe nachgeladen!");
return 1;
}
}
if(!strcmp("/dienst", cmdtext, true))
{
if(IstSpielerInFraktion(playerid, 1))
{
GivePlayerWeapon(playerid,24,0);
SendClientMessage(playerid,0xFFDC00FF,"Du hast deine Dienstwaffe aus dem Schrank genommen!");
return 1;
}
}
return 0;
}@xCurry:
Schreib es mal so:
if(Fahrsstunde[playerid][fahr_bAktiv])
{
Fahrsstunde[playerid][fahr_Checkpoint]++;
DisablePlayerCheckpoint(playerid);
new playercp = Fahrsstunde[playerid][fahr_Checkpoint];
if(playercp == sizeof(Fahrss_Stationen))
{
new string[128];
PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
format(string,sizeof(string),"Du hast die Praktische Prüfung beendet bitte warte auf dein Ergebnis! (%d | %d)",playercp,sizeof(Strassen_Stationen));
SendClientMessage(playerid,GRÜN,string);
Fahrsstunde[playerid][fahr_bAktiv]=false;
}
else
{
new string[128];
PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
format(string,sizeof(string),"(%d | %d)",playercp,sizeof(Fahrss_Stationen));
SendClientMessage(playerid,GRÜN,string);
new id = Fahrsstunde[playerid][fahr_Checkpoint];
SetPlayerCheckpoint(playerid,Fahrss_Stationen[id][F_fx],Fahrss_Stationen[id][F_fy],Fahrss_Stationen[id][F_fz],Fahrss_Stationen[id][F_fRad]);
}
} -
moinsen unzwar hab ich gerade probiert Interiors zu erstellen nur leider ist dort ein Problem der Pickup erscheint dort nicht?
{186,2597.5662,1899.6418,-1145.568359,1050.710083}
Das ist die Koordinate wo der Pickup erstellt werden soll
Das ist die ganze Koordinate
AddPlayerClass(186,2597.5662,1899.6418,11.0312,357.6367,0,0,0,0,0,0); // yakuzaenterIch hab das Interior 12 genommen dieses heißt
Unused safe house
-
Mit welchem Code erstellst du denn das Pickup?
-
Unused safe house 12 2324.419921,-1145.568359,1050.710083
-
Nein, der Code mit dem du das Pickup erstellst (CreatePickup...).
-
//Gebäude laden
for(new i=0; i<sizeof(bInfo); i++)
{
CreatePickup(1318,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
} -
Ok, poste bitte die bInfo Variable, mit den Daten, sowie das enum dazu (was bei "new bInfo" in der 2. Klammer steht, danach suchen).
-
-
enum buildingsEnum{
Float:b_x,
Float:b_y,
Float:b_z,
Float:b_ix,
Float:b_iy,
Float:b_iz,
b_interior
}new bInfo[][buildingsEnum] = {
{186,2597.5662,1899.6418,-1145.568359,1050.710083}
};
//Gebäude laden
for(new i=0; i<sizeof(bInfo); i++)
{
CreatePickup(1318,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
} -
Ok, deine Koordinaten hier sind falsch. Schreibe es so:
new bInfo[][buildingsEnum] = {
{2597.5662,1899.6418,11.0312,2324.419921,-1145.568359,1050.710083,12}
}; -
Jeffry:
hat funktioniert
aber bei mein Tacho steht jetze z.b 100% Zustand aber da kommt
Du bist durchgefallen da das Auto weniger als 80 Zustand Hatte
wie kann ich das mit der Rechnung machen ?
da ich ja nicht das Richtige Healt nehme ?
GetVehicleHealth(veh, hp);
hp = floatmul(floatdiv(100,750),(hp-250));
if(hp<=0.0){hp=0.0;}
formatEx(str,"Zustand: %.0f",hp);
TextDrawSetString(Tacho[i][Zustand],str);
if(Fahrsstunde[playerid][fahr_bAktiv])
{
Fahrsstunde[playerid][fahr_Checkpoint]++;
DisablePlayerCheckpoint(playerid);
new playercp = Fahrsstunde[playerid][fahr_Checkpoint],veh = GetPlayerVehicleID(playerid),Float:hp;
if(playercp == sizeof(Fahrss_Stationen))
{
if(GetVehicleHealth(veh,hp)< 80)
{
SetVehicleToRespawn(veh);
tank[veh] = 100;
SendClientMessage(playerid,IGELB,"Du bist durchgefallen da das Auto weniger als 80 Zustand Hatte!");
return 1;
}
else
{
PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
SendClientMessage(playerid,EGRÜN,"Du hast die Praktische Prüfung beendet bitte warte auf dein Ergebnis!");
Fahrsstunde[playerid][fahr_bAktiv]=false;
GetVehicleHealth(veh, hp);
SetVehicleToRespawn(veh);
tank[veh] = 100;
return 1;
}
}
else
{
new string[128];
PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
format(string,sizeof(string),"(%d | %d)",playercp,sizeof(Fahrss_Stationen));
SendClientMessage(playerid,IGELB,string);
new id = Fahrsstunde[playerid][fahr_Checkpoint];
SetPlayerCheckpoint(playerid,Fahrss_Stationen[id][F_fx],Fahrss_Stationen[id][F_fy],Fahrss_Stationen[id][F_fz],Fahrss_Stationen[id][F_fRad]);
}
} -
@xCurry:
Meinst du das so?
GetVehicleHealth(veh,hp);
if(hp < 80)
{
SetVehicleToRespawn(veh);
tank[veh] = 100;
SendClientMessage(playerid,IGELB,"Du bist durchgefallen da das Auto weniger als 80 Zustand hatte!");
return 1;
} -
-
Du möchtest also, wenn man während der Prüfung unter 80 HP vom Fahrzeug hat, das die Prüfung abgebrochen wird?
Dann musst du das in einem Timer einbauen.
SetTimerEx("FahrstundenTimer",1000,1,"i",playerid); //Dort wo die Prüfung beginnt!forward FahrstundenTimer(playerid);
public FahrstundenTimer(playerid)
{
if(Fahrsstunde[playerid][fahr_bAktiv])
{
new Float:hp,veh = GetPlayerVehicleID(playerid);
GetVehicleHealth(veh,hp);
if(hp < 80)
{
SetVehicleToRespawn(veh);
tank[veh] = 100;
SendClientMessage(playerid,IGELB,"Du bist durchgefallen da das Auto weniger als 80 Zustand Hatte!");
return 1;
}
}
return 1;
} -
ICy.:
Nein
Jeffry:
wenn man in den Lezten Checkpoint fährt soll überprüft werden ob das Fahrzeug noch mehr als 80% hat ( also Tacho % )
und für den Tacho nutze ich eine Rechnung damit das car bei 0% brenntdie rechnung
GetVehicleHealth(veh, hp);
hp = floatmul(floatdiv(100,750),(hp-250));
if(hp<=0.0){hp=0.0;}
formatEx(str,"Zustand: %.0f",hp); -
Entschuldigung, dann habe ich das falsch verstanden.
Wende deine Rechnung doch einfach an.
GetVehicleHealth(veh,hp);
hp = floatmul(floatdiv(100,750),(hp-250));
if(hp < 80)
{
SetVehicleToRespawn(veh);
tank[veh] = 100;
SendClientMessage(playerid,IGELB,"Du bist durchgefallen da das Auto weniger als 80 Zustand hatte!");
return 1;
} -
Sorry, kommt bisschen spät, aber du sagtest ich soll den Code posten anstatt dir mein GM per PM zu senden
______________________________________________
Problembeschreibung:
Registrieren klappt problemlos, beim einloggen steht dort immer das mein Passwort falsch ist.
public OnPlayerConnect(playerid)
{
new pname[MAX_PLAYER_NAME], string[39 + MAX_PLAYER_NAME];
if(fexist(UserPath(playerid)))
{
INI_ParseFile(UserPath(playerid), "LoadUser_%s");
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Login Menu","{FF0000}Type your password below to login.","Login","Kick");
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Register Menu","Type your password below to register a new account.","Register","Kick");
}
GetPlayerName(playerid, pname, sizeof(pname));
format(string, sizeof(string), "%s has Joined the server.", pname);
SendClientMessageToAll(0xFF8000FF, string);
return 1;
public OnPlayerDisconnect(playerid, reason)
{
new pname[MAX_PLAYER_NAME], string[39 + MAX_PLAYER_NAME];
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,"Player Saved Data");
INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
INI_WriteInt(File,"Score",GetPlayerScore(playerid));
INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
INI_Close(File);
GetPlayerName(playerid, pname, sizeof(pname));
switch(reason) {
case 0: format(string, sizeof(string), "%s has left the server. (Lost Connection)", pname);
case 1: format(string, sizeof(string), "%s has left the server. (Leaving)", pname);
case 2: format(string, sizeof(string), "%s has left the server. (Kicked)", pname);
}
SendClientMessageToAll(0xFF8000FF, string);
return 1;
}Benötigt ihr noch etwas?
-
Also, zuallererst soll man mit "INI_SetTag" keine Leerzeichen benutzen. Schreib also "Player_Saved_Data" oder sowas in der Art.
Zeig mal bitte dein "UserPath(playerid)".
-