Ich weiß, dass es bereits Threads zu diesem Thema gibt, jedoch fand ich leider keinen durch Google sowie die SuFu.
Wie könnte man es am Besten realisieren, dass die Automaten funktionieren?
Selbst gemappte Getränkeautomaten
- Tempelhof
- Geschlossen
- Erledigt
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
-
-
Wenn man Enter drückt kommt eine Animation und man zieht den Spieler z.B 2$ ab. Bin kein Scripter, aber sollte funktionieren.
-
Position abfragen (ob der Spieler direkt vor dem gemappten automaten steht)
- Animation ausführen
- Geld abziehen
- Heilen. -
Ich weiß, dass es bereits Threads zu diesem Thema gibt, jedoch fand ich leider keinen durch Google sowie die SuFu.
Wie könnte man es am Besten realisieren, dass die Automaten funktionieren?Beispiel :
Du erstellst ein Enum das extra dafür gemacht wurde.
Du gibst die x,y,z cordinaten von jedem selbst gemappten ein.Danach machst du zmb den Command
/buy
und dann bei IsPlayInRageOfPoint anstadt cordinaten zmb [al_x] , [al_y] , [al_z] -
Danke euch, genau das wollte ich wissen.
Gibt es irgendetwas zu beachten? zB. kann der Spieler während der Animation mehrmals die Enter-Taste drücken? -
Danke euch, genau das wollte ich wissen.
Gibt es irgendetwas zu beachten? zB. kann der Spieler während der Animation mehrmals die Enter-Taste drücken?
Ja, solange du nichts dagegen scriptest schon. Du kannst auch die Animation mithilfe anderer Animationen beenden (aber nur wenn dies nicht per Script verhindert wird) -
Du könntest eventuell beim Start der Animation einen Timer stellen. Z.b. nach 3sek. Ist die animation vorbei und erst dann kann er nochmal sich healen.
-
Ja, solange du nichts dagegen scriptest schon. Du kannst auch die Animation mithilfe anderer Animationen beenden (aber nur wenn dies nicht per Script verhindert wird)Alles klar, mal schauen was sich machen lässt.
Kennt zwischen uns evtl. jemand zufällig die Animation? -
Du könntest eventuell beim Start der Animation einen Timer stellen. Z.b. nach 3sek. Ist die animation vorbei und erst dann kann er nochmal sich healen.
Und eventuell eine Abfrage, ob die Lebensanzeige voll ist, und dann den Kauf verhindert. Wäre auch noch eine Idee. -
Und eventuell eine Abfrage, ob die Lebensanzeige voll ist, und dann den Kauf verhindert. Wäre auch noch eine Idee.Genau, das habe ich vergessen. Danke dir.
Nun teile ich das Ding
new Sprunking[MAX_PLAYERS] = 0;
new Float:Sprunk[][] = {
{1192.3206, -912.9593, 48.0625},
{1194.2985, -912.8788, 48.0625}
};
forward TIMER_SPRUNKEND(playerid);
public TIMER_SPRUNKEND(playerid)
{
ApplyAnimation(playerid, "VENDING", "VEND_Drink_P", 3.0, 0, 0, 0, 0, 0);
TogglePlayerControllable(playerid, true);
new Float:health;
GetPlayerHealth(playerid, health);
SetPlayerHealth(playerid, health+10);
Sprunking[playerid] = 0;
}public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
new Float:health;
GetPlayerHealth(playerid, health);
if(IsPlayerAtSprunk(playerid) && newkeys == 16 && GetPlayerState(playerid == PLAYER_STATE_ONFOOT) && health < 100)
{
if(SpielerInfo[playerid][pMoney] >= 1 && Sprunking[playerid] == 0)
{
Sprunking[playerid] = 1;
TogglePlayerControllable(playerid, false);
ApplyAnimation(playerid, "VENDING", "VEND_Use", 3.0, 0, 0, 0, 0, 0);
PlayerPlaySound(playerid, 42600, 0, 0, 0);
SetTimerEx("TIMER_SPRUNKEND", 3000, false, "i", playerid);
SpielerInfo[playerid][pMoney] -= 1;
GivePlayerMoney(playerid, -1);
}
else
{
PlayerPlaySound(playerid, 1053, 0, 0, 0);
}
}
return 1;
}Edit:
habe die Funktion für die Abfrage vergessen:
stock IsPlayerAtSprunk(playerid)
{
if(IsPlayerConnected(playerid))
{
for(new i = 0; i < sizeof(Sprunk); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, Sprunk[i][0], Sprunk[i][1], Sprunk[i][2]))
{
return true;
}
}
}
return false;
}
Falls Errors auftreten, kann es sein, dass ich was vergessen habe.// Lebensabfrage eingefügt.
-
Position abfragen (ob der Spieler direkt vor dem gemappten automaten steht)
- Animation ausführen
- Geld abziehen
- Heilen.Also ich würde sagen
-abfragen ob der spieler genug + geld hat.
-Geld abziehen
-Animation
-HeilenDas mit der abfrage ob der jenige genug geld hat , halt xD
Oder halt mit IsPlayerAtSprunk das wohl das beste ist xD -
breadfish.de
Hat das Thema geschlossen.