Ahoj mám dost velký problém s vytvořením více druhů pickupů a to tak, že chci vytvořit pickup pro hidden package a další pro opravu vozidel/vyléčení hráče.
Kód mám vytvořen takto:
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == Package[PICKUP])
{
new money = RandomInt(500, 1000);
new message[128];
if(Vip[playerid][VIP_ACTIVE] == true)
{
new moneyVip = money*2;
format(message, sizeof(message), "{0EB3F1}[PACKAGE]{46FF33}[VIP] {ffffff}Získal jsi za balíček 2x tolik peněz! {46FF33}%i $", moneyVip);
if(User[playerid][COUNT_TELEPORT] == 0)
{
Reward(playerid, money, 2, 2);
}
else
{
Reward(playerid, money, 0, 0);
SendClientMessage(playerid, COLOR_LIGHTRED, "Za misi nezískáš žádné Rank body, protože jsi se teleportoval!");
}
}
else
{
format(message, sizeof(message), "{0EB3F1}[PACKAGE] {ffffff}Získal jsi za balíček {46FF33}%i $", money);
if(User[playerid][COUNT_TELEPORT] == 0)
{
Reward(playerid, money, 0, 0);
User[playerid][MONEY] = User[playerid][MONEY]+money;
}
else
{
Reward(playerid, money, 1, 1);
User[playerid][MONEY] = User[playerid][MONEY]+money;
SendClientMessage(playerid, COLOR_LIGHTRED, "Za misi nezískáš žádné Rank body, protože jsi se teleportoval!");
}
}
SendClientMessage(playerid, -1, message);
new messageToAll[256];
format(messageToAll, sizeof(messageToAll), "{0EB3F1}[PACKAGE] {ffffff}Hráč {2C97CA}%s {ffffff}našel skrytý balíček!", User[playerid][NAME]);
SendClientMessageToAll(-1, messageToAll);
new logText[400];
format(logText, sizeof(logText), "[*#0EB3F1*][PACKAGE][*/Color] Hrac [*#0EB3F1*]%s[*/Color] nasel skryty balicek!", User[playerid][NAME]);
new log[328];
new date = GetTime();
format(log, sizeof(log), "INSERT INTO `samp_online_log`(`Date`, `Text`) VALUES ('%i', '%s')", date, logText);
mysql_query(Database, log);
GameTextForPlayer(playerid, "Balicek nalezen!", 3000, 1);
PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);
DestroyPickup(Package[PICKUP]);
for(new i = 0; i <= 100; i++)
{
RemovePlayerMapIcon(i, 1);
}
Game[HIDDEN_PACKAGE_ACTIVE] = false;
User[playerid][COUNT_TELEPORT] = 0;
Package[PICKUP] = 0;
GangZoneDestroy(Package[ZONE]);
new randomMinutes = RandomInt(5,40);
new timeForPackage = 1000*60*randomMinutes;
Game[PACKAGE_TIMER] = SetTimer("generateHiddenPackage", timeForPackage, 1);
}
else
{
for(new repick = 0; repick < Game[REPAIR_COUNT]; repick++)
{
if(pickupid == RepairPickup[repick][PICKUP_ID])
{
if(IsPlayerInAnyVehicle(playerid))
{
new vehId = GetPlayerVehicleID(playerid);
RepairVehicle(vehId);
SendClientMessage(playerid, COLOR_LIGHTRED, "Vozidlo opraveno!");
}
else
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, COLOR_LIGHTRED, "Zdraví doplněno!");
}
}
}
}
return 1;
}
První zapsaný typ pickupu (Package[PICKUP]) funguje bez problémů. Problém nastává v momentě, kdy chci vzít ten druhý typ pickupu pro vyléčení - hráče nevyléčí ale "sebere skrytý balíček" - místo toho aby hráč sebral druhý typ, tak se zpracuje ten první.
Dotaz
MichaelMik9 1
Ahoj mám dost velký problém s vytvořením více druhů pickupů a to tak, že chci vytvořit pickup pro hidden package a další pro opravu vozidel/vyléčení hráče.
Kód mám vytvořen takto:
public OnPlayerPickUpPickup(playerid, pickupid) { if(pickupid == Package[PICKUP]) { new money = RandomInt(500, 1000); new message[128]; if(Vip[playerid][VIP_ACTIVE] == true) { new moneyVip = money*2; format(message, sizeof(message), "{0EB3F1}[PACKAGE]{46FF33}[VIP] {ffffff}Získal jsi za balíček 2x tolik peněz! {46FF33}%i $", moneyVip); if(User[playerid][COUNT_TELEPORT] == 0) { Reward(playerid, money, 2, 2); } else { Reward(playerid, money, 0, 0); SendClientMessage(playerid, COLOR_LIGHTRED, "Za misi nezískáš žádné Rank body, protože jsi se teleportoval!"); } } else { format(message, sizeof(message), "{0EB3F1}[PACKAGE] {ffffff}Získal jsi za balíček {46FF33}%i $", money); if(User[playerid][COUNT_TELEPORT] == 0) { Reward(playerid, money, 0, 0); User[playerid][MONEY] = User[playerid][MONEY]+money; } else { Reward(playerid, money, 1, 1); User[playerid][MONEY] = User[playerid][MONEY]+money; SendClientMessage(playerid, COLOR_LIGHTRED, "Za misi nezískáš žádné Rank body, protože jsi se teleportoval!"); } } SendClientMessage(playerid, -1, message); new messageToAll[256]; format(messageToAll, sizeof(messageToAll), "{0EB3F1}[PACKAGE] {ffffff}Hráč {2C97CA}%s {ffffff}našel skrytý balíček!", User[playerid][NAME]); SendClientMessageToAll(-1, messageToAll); new logText[400]; format(logText, sizeof(logText), "[*#0EB3F1*][PACKAGE][*/Color] Hrac [*#0EB3F1*]%s[*/Color] nasel skryty balicek!", User[playerid][NAME]); new log[328]; new date = GetTime(); format(log, sizeof(log), "INSERT INTO `samp_online_log`(`Date`, `Text`) VALUES ('%i', '%s')", date, logText); mysql_query(Database, log); GameTextForPlayer(playerid, "Balicek nalezen!", 3000, 1); PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0); DestroyPickup(Package[PICKUP]); for(new i = 0; i <= 100; i++) { RemovePlayerMapIcon(i, 1); } Game[HIDDEN_PACKAGE_ACTIVE] = false; User[playerid][COUNT_TELEPORT] = 0; Package[PICKUP] = 0; GangZoneDestroy(Package[ZONE]); new randomMinutes = RandomInt(5,40); new timeForPackage = 1000*60*randomMinutes; Game[PACKAGE_TIMER] = SetTimer("generateHiddenPackage", timeForPackage, 1); } else { for(new repick = 0; repick < Game[REPAIR_COUNT]; repick++) { if(pickupid == RepairPickup[repick][PICKUP_ID]) { if(IsPlayerInAnyVehicle(playerid)) { new vehId = GetPlayerVehicleID(playerid); RepairVehicle(vehId); SendClientMessage(playerid, COLOR_LIGHTRED, "Vozidlo opraveno!"); } else { SetPlayerHealth(playerid, 100); SendClientMessage(playerid, COLOR_LIGHTRED, "Zdraví doplněno!"); } } } } return 1; }
První zapsaný typ pickupu (Package[PICKUP]) funguje bez problémů. Problém nastává v momentě, kdy chci vzít ten druhý typ pickupu pro vyléčení - hráče nevyléčí ale "sebere skrytý balíček" - místo toho aby hráč sebral druhý typ, tak se zpracuje ten první.
Může prosím někdo poradit jak to odlišit?
Děkuji za případnou pomoc :)
Link to comment
Share on other sites
8 odpovědí na tuto otázku
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now