Random fish names - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (
https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (
https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Random fish names (
/showthread.php?tid=643925)
Random fish names -
DevBe - 30.10.2017
Hello! I've created a stock to store fish names at random, along with a /fish command that should check whether fish name 'linesnap' is chosen - and if it is - display a message to show the players line has snapped.
Unfortunately, the code only calls the line snap message and doesn't choose any other fish at random.
If I remove the linesnap check in the /fish command it works, but I need it this way.
I'm guessing the code below checks if "LineSnap" exists in the actual stock rather than what it generated at random.
How to change it so the code checks whether "LineSnap" is called at random?
Код:
stock FishName()
{
new name[20];
switch(random(6))
{
case 0: name = "LineSnap"; // here is what breaks fishing line
case 1: name = "Trout";
case 2: name = "Shark";
case 3: name = "Tuna";
case 4: name = "Flounder";
case 5: name = "Sea Bass";
}
return name;
}
Код:
forward FishingTimer(playerid);
public FishingTimer(playerid)
{
if(PlayerFishing[playerid] > 0)
{
new string[128];
PlayerFishing[playerid] = 0;
TogglePlayerControllable(playerid, 1);
if(strfind(FishName(), "LineSnap")) // And here is what fucks up the random fishes. Always shows line snapped now
{
format(string, sizeof(string), "%s's rod line has snapped!", GetName(playerid));
SendActionMessage(string);
return 1;
}
else
{
format(string, sizeof(string), ""COLOR_CORNSILK"You have caught a fish - %s!", FishName());
SendClientMessage(playerid, -1, string);
}
}
return 1;
}
Re: Random fish names -
Kyle - 30.10.2017
Use this
https://pastebin.com/7eXvzTmJ
Re: Random fish names -
DevBe - 30.10.2017
Thanks man. Gave it a try and it does this:
https://imgur.com/a/60arO
Re: Random fish names -
Abagail - 30.10.2017
This is why the index would always be 0:
pawn Код:
new rFish = random(sizeof(rFish));
Instead do:
pawn Код:
new rFish = random(sizeof(FishName));
Also for the line snap, you can just check if rFish is 0 (or the index if you add more line snaps) instead of comparing the string.
Re: Random fish names -
DevBe - 30.10.2017
Thank you both so much! Wish I could rep twice in one day.
Changed strfind to strcmp instead as I think it's faster, right? (or at least serves better meaning here)
Код:
if(strcmp(FishName[rFish], "LineSnap") == 0)
Re: Random fish names -
Kyle - 30.10.2017
Quote:
Originally Posted by Abagail
This is why the index would always be 0:
pawn Код:
new rFish = random(sizeof(rFish));
Instead do:
pawn Код:
new rFish = random(sizeof(FishName));
Also for the line snap, you can just check if rFish is 0 (or the index if you add more line snaps) instead of comparing the string.
|
Oops, oversight on my behalf, cheers.
Re: Random fish names -
DevBe - 30.10.2017
Another question about this:
How would I store the fish name in a string?
Код:
new FishSlot1[MAX_PLAYERS];
Код:
FishSlot1[playerid] = FishName[rFish];
Error:
Код:
C:\Users\Gamer\Desktop\Generation X\gamemodes\genx.pwn(717) : error 006: must be assigned to an array
Re: Random fish names -
Kyle - 30.10.2017
Quote:
Originally Posted by DevBe
Another question about this:
How would I store the fish name in a string?
Код:
new FishSlot1[MAX_PLAYERS];
Код:
FishSlot1[playerid] = FishName[rFish];
Error:
Код:
C:\Users\Gamer\Desktop\Generation X\gamemodes\genx.pwn(717) : error 006: must be assigned to an array
|
https://pastebin.com/raw/JSxkgcEB