[ FILTERSCRIPT ] Kleines VoteSystem
Beiträge von Sebastian.
-
-
if(strcmp(cmd,"/medicschranke",true) == 0)
{
if(PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4)
{
if(medictorvar == 0)
{
MoveObject(schranke1, 1143.37000000,-1291.08000000,13.44000000 +0.01, 0.01, 0.00000000,270.00000000,0.00000000);
SendClientMessage(playerid, COLOR_RED, "Schranke geschlossen!");
medictorvar = 1;
}
else
{
MoveObject(schranke1, 1143.37000000, -1291.08000000, 13.44000000 -0.01, 0.01, 0.00000000,0.00000000,0.00000000); // Hier muss es dann - 0.01 heißen
SendClientMessage(playerid, COLOR_GREEN, "Schranke geöffnet!");
medictorvar = 0;
}
}
else SendClientMessage(playerid,COLOR_RED," Du bist kein Arzt");
return 1;
}/edit: Kann es sein, das du das Object 2x im Skript hast? bzw.. ich sehe oben, das du es einmal offen und einmal zu im skript hast.. nimm das Object, wo es zu ist mal raus
-
Dann mach es so:
MoveObject(DEIN_OBEJCT, x, y, z +0.01, 0.01, rX,rY,rZ); -
ok.. danke
-
Ok.. danke
jedoch brauche ich glaube ich schon die schleife + IsPlayerInRangeOfPoint oder? Weil es wird ja noch mehr "Flugrouten" geben^^
Mfg -
Hallo.
Kurze Frage.. bei mir wird der nächste RaceCheckpoint nicht mehr angezeigt, wenn ich den ersten passiert habe.. mit normalen Checkpoint klappt das alles.. jedoch so nicht... wüsste wer zufällig warum?
So habe ich die koordinaten in einem array +enum
new PilotLSSF[][NJobDaten] = {
{491.0360,-2480.9023,208.3164},
{-934.9673,-2460.8608,353.8739},
{-1648.3916,-1971.1779,326.9221},
{-1535.7734,-1203.6198,252.9583},
{-1764.5897,-391.3161,247.9086},
{-1417.1436,73.7660,14.8915},
{-1249.4308,-103.9663,14.8782}
};
enum NJobDaten {
Float:X,
Float:Y,
Float:Z
}
public PilotTimerLSSF(playerid)
{
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid,COLOR_GELB,"Tower Los Santos: Startfreigabe erteilt. Guten Flug!");
SetPlayerRaceCheckpoint(playerid, 3,PilotLSSF[0][X], PilotLSSF[0][Y],PilotLSSF[0][Z],PilotLSSF[1][X],PilotLSSF[1][Y],PilotLSSF[1][Z], 5.0);//Erster Checkpoint
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
for(new i = 0;i<sizeof PilotLSSF;i++)
{
if(IsPlayerInRangeOfPoint(playerid,5.0,PilotLSSF[i][X],PilotLSSF[i][Y],PilotLSSF[i][Z]))
{
new string[128];
DisablePlayerRaceCheckpoint(playerid);
Nebenjob[playerid][p_Checkpoint]++;
new playercp = Nebenjob[playerid][p_Checkpoint];
if(playercp == sizeof(PilotLSSF))
{
new EXP = 4 + random(5);
new GELD = 400 + random(267);
pInfo[playerid][PilotenExp] += EXP;
pInfo[playerid][pSonstigeEinnahmen] +=GELD;
format(string,sizeof(string),"Sie erhalten +%d Exp und %i$ dazu!", EXP,GELD);
SendClientMessage(playerid,COLOR_HELLBLAU,string);
PilotErfahrung(playerid);
}
else
{
SetPlayerRaceCheckpoint(playerid, 3, PilotLSSF[playercp][X],PilotLSSF[playercp][Y],PilotLSSF[playercp][Z],PilotLSSF[Nebenjob[playerid][p_Checkpoint]+1][X],PilotLSSF[Nebenjob[playerid][p_Checkpoint]+1][Y],PilotLSSF[Nebenjob[playerid][p_Checkpoint]+1][Z],5.0);
}
}
}
return 1;
}
//Edit: Hat keiner eine Idee?Mfg
Sebastian -
Es war ja nie ein leerzeichen drinne.. Jedoch klappt es nun nach mehrmaligen neuinstallieren
Trotzdem danke.
Mfg
Sebastian -
//Der Bus Timer .. wird oben im skript eingetragenm
forward BusTimer(playerid);
//das Enum, und das dazugehörige Array
enum BusInfo {
Float:Bus_X,
Float:Bus_Y,
Float:Bus_Z
}
//Das Array
new BusKoordianten[][BusInfo] = {
{X, Y, Z},
//... usw.
};
//Das enum, für die Variable ++ zu nehmen, damit auch der nächste Checkpoint angezeigt wird
enum BusVariable {
Haltestelle
}
new Busfahrer[MAX_PLAYERS][BusVariable];//Der Befehl um es zu starten
if(strcmp("/starten",cmdtext, true, 10) == 0)
{
Busfahrer[playerid][Haltestelle]=0;
SetPlayerCheckpoint(playerid,BusKoordianten[0][Bus_X],BusKoordianten[0][Bus_Y],BusKoordianten[0][Bus_Z], 3.0);
return 1;
}
//Wenn du in einem Bus Checkpoint bist
public OnPlayerEnterCheckpoint(playerid)
{
for(new i=0;i < sizeof BusKoordinaten;i++)
{
if(IsPlayerInRangeOfPoint(playerid, 5.0, BusKoordinate[i][Bus_X],BusKoordinate[i][Bus_Y],BusKoordinate[i][Bus_Z]))
{
new vehicleid = GetPlayerVehicleID(playerid),
BusfahrerBus = GetVehicleModel(vehicleid);
if(BusfahrerBus == 431)//Ist er in einem bus dann soll der timer gestartet werden
{
SetTimerEx("BusTimer",1,false,"i",playerid);
}
}
}
}
return 1;
}//wenn der timer abgelaufen ist
public BusTimer(playerid)
{
DisablePlayerCheckpoint(playerid);
Busfahrer[playerid][Haltestelle]++;
new CP = Busfahrer[playerid][Haltestelle];
if(CP == sizeof(BusKoordinaten))
{
//Wenn er am letzten Checkpoint ist...
}
else
{
//Wenn nicht, wird der nöchste Checkpoint gesetzt
SetPlayerCheckpoint(playerid,BusKoordinaten[CP][Bus_X],BusKoordinaten[CP][Bus_Y],BusKoordinaten[CP][Bus_Z], 3.0);
}
return 1;
} -
du erststellt halt ein array mit deinen coordianten, und das dazugehörige enum.. dann machst du unter OnPlayerEnterCheckpoint eine for schleife durch alle coordinaten, die du im array erstellt hast, und fragst das mit IsPlayerInRangeOfPoint ab.. wenn es so ein Checkpoint gewesen ist, startest du einen timer.. wenn der timer abgelaufen ist, lässt du eine Variable ++ nehmen, und lässt dann den nächsten Checkpoint anzeigen.. usw
-
ja.. weil es bei DIALOG_STYLE_INPUT auch keine listitems gibt
-
wow.. respekt
erster post und dann ne anfrage.. mhh
aber naja.. versuch es dir doch erstma selber zu erstellen..
Hier ist was gutes
[ SCRIPTING ] Checkpoints abfahren -
normaler weise schon.. ich versuche es jetzt mal mit einer neuinstalation und sicherung der daten
-
wenn es gehen würde, würde ich es auch machen
-
*facepalm*
das poste ist unnötig.. sry -
da wo du den Dialog "Dialog_report2", musst du natürlich auch "if(dialogid == Dialog_report2) aufrufen lassen
-
mhh.. will aber bei einer sache gerade weiter mappen
-
ähh.. mit ++ dürfte es eig. gehen.. jedoch.. versuch es doch einfach mal in deinem Spieler enum reinzumachen und dementsprechen halt auch die abfrage anders machen bzw. das was du "++" nimmst
-
-
probiere es so
format(string,sizeof(string),"[Vorname: %s]",GetPVarString(playerid,"Vorname")); -
ok
ich hatte bei diesem befehl, vergessen immer die Variable "Haltestelle" auf 0 zu setzen
if(dialogid == DIALOG_BUSLINIEN)
{
if(response == 1)
{
if(listitem == 0)
{
if(pInfo[playerid][FeahrtGeradeBus] == 0)
{
new vehicleid = GetPlayerVehicleID(playerid),
BusfahrerBus = GetVehicleModel(vehicleid);
if(BusfahrerBus == 431)
{
if(pInfo[playerid][BusSkill] >= 1)
{
Busfahrer[playerid][pB_Checkpoint]=0;
Busfahrer[playerid][pB_Haltestelle]= 0; //<-Hier
pInfo[playerid][FeahrtGeradeBus] = 1;
SetPlayerCheckpoint(playerid,BusSkillEins[0][Bus1_X],BusSkillEins[0][Bus1_Y],BusSkillEins[0][Bus1_Z], 3.0);
SendClientMessage(playerid,COLOR_HELLBLAU,BusSkillEins[0][Bus1_Text]);
return 1;
}
}
}
}
return 1;
}
}